{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.3 高斯分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "高斯分布，又叫正态分布，是连续变量经常使用的一个分布模型，一维的高斯分布如下：\n",
    "\n",
    "$$\n",
    "\\mathcal{N}\\left(x\\left|~\\mu,\\sigma^2\\right.\\right) = \\frac{1}{(2\\pi\\sigma^2)^{1/2}} \\exp\\left\\{-\\frac{1}{2\\sigma^2}(x-\\mu)^2\\right\\}\n",
    "$$\n",
    "\n",
    "其中 $\\mu$ 是均值，$\\sigma$ 是方差。\n",
    "\n",
    "$D$-维的高斯分布如下：\n",
    "\n",
    "$$\n",
    "\\mathcal{N}\\left(\\mathbf x\\left|~\\mathbf{\\mu, \\Sigma}\\right.\\right) = \\frac{1}{(2\\pi)^{D/2}} \\frac{1}{|\\mathbf\\Sigma|^{1/2}} \\exp \\left\\{-\\frac{1}{2}(\\mathbf x - \\mathbf \\mu)^\\top\\mathbf\\Sigma^{-1}(\\mathbf x - \\mathbf \\mu)\\right\\}\n",
    "$$\n",
    "\n",
    "其中，$D$ 维向量 $\\mathbf \\mu$ 是均值，$D\\times D$ 矩阵 $\\mathbf\\Sigma$ 是方差，$|\\mathbf\\Sigma|$ 是其行列式。\n",
    "\n",
    "之前我们已经看到，在均值和方差固定时，高斯函数是熵最大的连续分布，因此高斯分布的应用十分广泛。\n",
    "\n",
    "而中心极限定理告诉我们，对于某个分布一组样本 $x_1, \\dots, x_N$，他们的均值 $(x_1+\\dots+x_N)/N$ 的分布会随着 $N$ 的增大而越来越接近一个高斯分布。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 验证高斯分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面，我们来验证高斯分布是一个概率分布。\n",
    "\n",
    "考虑高斯分布的结构中跟 $\\mathbf x$ 有关的这个二次型：\n",
    "\n",
    "$$\n",
    "\\Delta^2 = (\\mathbf x - \\mathbf \\mu)^\\top\\mathbf\\Sigma^{-1}(\\mathbf x - \\mathbf \\mu)\n",
    "$$\n",
    "\n",
    "这里的 $\\Delta$ 叫做 $\\mathbf \\mu$ 和 $\\mathbf x$ 的马氏距离（Mahalanobis distance），当 $\\mathbf \\Sigma$ 是单位矩阵的时候为欧氏距离。\n",
    "\n",
    "在 $\\Delta^2$ 相等的地方，高斯分布的概率密度也相等。\n",
    "\n",
    "不失一般性，我们只需要考虑 $\\mathbf\\Sigma$ 是对称的情况。\n",
    "\n",
    "事实上，如果 $\\mathbf\\Sigma$ 不对称，考虑其逆矩阵 $\\mathbf\\Lambda$，它总可以写成一个对称矩阵和反对称矩阵的形式：\n",
    "\n",
    "$$\\mathbf\\Lambda = \\mathbf\\Lambda^S + \\mathbf\\Lambda^A =\\frac{\\mathbf{\\Lambda + \\Lambda^\\top}}{2} + \\frac{\\mathbf{\\Lambda - \\Lambda^\\top}}{2}$$\n",
    "\n",
    "而这个反对称的矩阵的对角线均为 0，从而它的二次型为 $0$ 因此，我们有：\n",
    "\n",
    "$$\n",
    "(\\mathbf x - \\mathbf \\mu)^\\top\\mathbf\\Lambda(\\mathbf x - \\mathbf \\mu) = (\\mathbf x - \\mathbf \\mu)^\\top\\mathbf\\Lambda^S(\\mathbf x - \\mathbf \\mu)\n",
    "$$\n",
    "\n",
    "所以 $\\mathbf\\Lambda$ 可以等价于 $\\mathbf\\Lambda^S$，而对称矩阵的逆矩阵也是对称的，因此 只需要考虑 $\\mathbf\\Sigma$ 是对称的情况。\n",
    "\n",
    "对于实对称矩阵，可以找到一组正交的特征向量使得：\n",
    "\n",
    "$$\n",
    "\\mathbf{\\Sigma u}_i = \\lambda_i,\\lambda_i\\geq=0 \\mathbf u_i, \\mathbf u_i^\\top\\mathbf u_j = I_{ij}， i,j=1,\\dots,D, \n",
    "$$\n",
    "\n",
    "其中 $I_{ij}$ 表示单位矩阵的第 $i$ 行 $j$ 列的元素：\n",
    "\n",
    "$$\n",
    "I_{ij} = \\left\\{\\begin{align}\n",
    "1, &~i=j \\\\ 0, &~i \\neq j\n",
    "\\end{align}\\right.\n",
    "$$\n",
    "\n",
    "从而 $\\mathbf\\Sigma$ 可以表示为\n",
    "\n",
    "$$\n",
    "\\mathbf\\Sigma = \\sum_{i=1}^D \\lambda_i \\mathbf u_i\\mathbf u_i^\\top = \\mathbf{U\\Lambda U}^\\top\n",
    "$$\n",
    "\n",
    "其中 $\\Lambda =\\text{diag}(\\lambda_1, \\dots,\\lambda_D)$ 为对角阵，$\\mathbf U$ 是 $u_1,\\dots,u_D$ 按列拼成的正交矩阵 $\\mathbf U^\\top\\mathbf U = \\mathbf U\\mathbf U^\\top = \\mathbf I$。\n",
    "\n",
    "由正交性：\n",
    "\n",
    "$$\n",
    "\\mathbf\\Sigma^{-1} = (\\mathbf{U\\Lambda U}^\\top)^{-1} = (\\mathbf U^\\top)^{-1}\\mathbf\\Lambda^{-1} \\mathbf U^{-1} = \\mathbf U \\mathbf\\Lambda^{-1} \\mathbf U^\\top = \\sum_{i=1}^D \\frac{1}{\\lambda_i} \\mathbf u_i\\mathbf u_i^\\top\n",
    "$$\n",
    "\n",
    "令 $y_i=\\mathbf u_i^\\top (\\mathbf{x-\\mu})$，则\n",
    "\n",
    "$$\n",
    "\\Delta^2 = \\sum_{i=1}^D \\frac{y_i^2}{\\lambda_i}\n",
    "$$\n",
    "\n",
    "写成向量形式：\n",
    "\n",
    "$$\n",
    "\\mathbf y = \\mathbf{U}^\\top\\mathbf{(x-\\mu)}\n",
    "$$\n",
    "\n",
    "因此，马氏距离相当于将 $\\mathbf{x}$ 做平移变换后，再在 $\\mathbf u_i$ 方向上作了一个大小为 $\\lambda_i^{1/2}$ 的尺度变换。\n",
    "\n",
    "为了满足高斯分布定义的合法性，需要使得所有的 $\\lambda_i$ 均大于 0，即 $\\mathbf\\Sigma$ 是正定的。\n",
    "\n",
    "考虑新的坐标系下的高斯分布形式，由 $\\mathbf U$ 的正交性，我们有\n",
    "\n",
    "$$\n",
    "\\mathbf x = \\mathbf{U} \\mathbf{y} + \\mu\n",
    "$$\n",
    "\n",
    "因此 $\\mathbf x$ 对 $\\mathbf y$ 的雅克比矩阵为：\n",
    "\n",
    "$$\n",
    "J_{ij} = \\frac{\\partial x_i}{\\partial y_j} = U_{ij}\n",
    "$$\n",
    "\n",
    "因此其行列式的绝对值为 1：\n",
    "\n",
    "$$\n",
    "|\\mathbf J|^2 = \\left|\\mathbf U\\right|^2 = \\left|\\mathbf U\\right|\\left|\\mathbf U^\\top\\right| = \\left|\\mathbf U\\right|\\left|\\mathbf U^\\top\\right| = |\\mathbf I| = 1\n",
    "$$\n",
    "\n",
    "另一方面，矩阵 $\\mathbf\\Sigma$ 的行列式可以成特征值的乘积：\n",
    "\n",
    "$$\n",
    "|\\mathbf\\Sigma| = \\prod_{j=1}^D \\lambda_j\n",
    "$$\n",
    "\n",
    "所以在新的坐标系下的分布为：\n",
    "\n",
    "$$\n",
    "p(\\mathbf y) = p(\\mathbf x)|\\mathbf J|=\\prod_{j=1}^D \\frac{1}{\\lambda_j^{1/2}}\\exp\\left(-\\frac{y_j^2}{2\\lambda_j}\\right)\n",
    "$$\n",
    "\n",
    "即 $D$ 个独立的单变量高斯分布的乘积。\n",
    "\n",
    "之前我们证明过单变量高斯分布的积分是 1，因此：\n",
    "\n",
    "$$\n",
    "\\int p(\\mathbf y)\\mathbf y = \\prod_{j=1}^D \\int_{-\\infty}^{\\infty} \\frac{1}{\\lambda_j^{1/2}}\\exp\\left(-\\frac{y_j^2}{2\\lambda_j}\\right) dy_j = 1\n",
    "$$\n",
    "\n",
    "所以多维高斯分布的确是归一化的，非负性显然，所以它是一个概率分布。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f226b113630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import scipy as sp\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "\n",
    "tt = np.linspace(-np.pi, np.pi, 100)\n",
    "\n",
    "xx = 1 * np.sin(tt)\n",
    "yy = 2 * np.cos(tt)\n",
    "\n",
    "ax.plot(- xx * np.sin(np.pi/6) - yy * np.cos(np.pi/6), \n",
    "        xx * np.cos(np.pi/6) - yy * np.sin(np.pi/6), 'r')\n",
    "\n",
    "ax.set_xlim([-3, 3])\n",
    "ax.set_ylim([-2, 2])\n",
    "ax.set_xlabel(r\"$x_1$\", fontsize=\"xx-large\")\n",
    "ax.set_ylabel(r\"$x_2$\", fontsize=\"xx-large\")\n",
    "\n",
    "ax.set_xticks([])\n",
    "ax.set_yticks([])\n",
    "\n",
    "ax.text(0, 0.3, r\"$\\mathbf{\\mu}$\", fontsize=\"xx-large\")\n",
    "\n",
    "ax.annotate(r\"$y_1$\",\n",
    "            fontsize=\"xx-large\",\n",
    "            xy=(-2.5, -2.5 / np.sqrt(3)), xycoords='data',\n",
    "            xytext=(2.5, 2.5 / np.sqrt(3)), textcoords='data',\n",
    "            arrowprops=dict(arrowstyle=\"<-\",\n",
    "                            connectionstyle=\"arc3\",\n",
    "                            color=\"blue\"))\n",
    "ax.annotate(r\"$y_2$\",\n",
    "            fontsize=\"xx-large\",\n",
    "            xy=(1, -np.sqrt(3)), xycoords='data',\n",
    "            xytext=(-1, np.sqrt(3)), textcoords='data',\n",
    "            arrowprops=dict(arrowstyle=\"<-\",\n",
    "                            connectionstyle=\"arc3\",\n",
    "                            color=\"blue\"))\n",
    "\n",
    "ax.annotate(\"\",\n",
    "            xy=(0.55, -0.55 * np.sqrt(3)), xycoords='data',\n",
    "            xytext=(0.55 + np.sqrt(3), 1-0.55 * np.sqrt(3)), textcoords='data',\n",
    "            arrowprops=dict(arrowstyle=\"<->\",\n",
    "                            connectionstyle=\"arc3\"), \n",
    "            )\n",
    "ax.annotate(\"\",\n",
    "            xy=(-1.05*np.sqrt(3), -1.05), xycoords='data',\n",
    "            xytext=(-1.05*np.sqrt(3)-0.5, -1.05+0.5*np.sqrt(3)), textcoords='data',\n",
    "            arrowprops=dict(arrowstyle=\"<->\",\n",
    "                            connectionstyle=\"arc3\"), \n",
    "            )\n",
    "\n",
    "ax.text(-2.7, -1, r\"$\\lambda_2^{1/2}$\", fontsize=\"xx-large\")\n",
    "ax.text(1.4, -0.9, r\"$\\lambda_1^{1/2}$\", fontsize=\"xx-large\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 均值和协方差"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "计算一阶矩即均值，令 $\\mathbf{z=x-\\mu}$：\n",
    "\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\mathbb E[\\mathbf x] & = \\frac{1}{(2\\pi)^{D/2}} \\frac{1}{|\\mathbf\\Sigma|^{1/2}} \\int \\exp \\left\\{-\\frac{1}{2}(\\mathbf x - \\mathbf \\mu)^\\top\\mathbf\\Sigma^{-1}(\\mathbf x - \\mathbf \\mu)\\right\\} \\mathbf x  d\\mathbf x\\\\\n",
    "& = \\frac{1}{(2\\pi)^{D/2}} \\frac{1}{|\\mathbf\\Sigma|^{1/2}} \\int \\exp \\left\\{-\\frac{1}{2}\\mathbf z^\\top\\mathbf\\Sigma^{-1}\\mathbf z\\right\\} \\mathbf{(z+\\mu)}  d\\mathbf z\n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "含有 $\\mathbf{z + \\mu}$ 中 $\\mathbf z$ 的部分会消失，因为此时 $\\mathbf z$ 的部分是一个奇函数，而 $\\mathbf \\mu$ 的部分相当于它乘上一个多维高斯分布的积分，因此：\n",
    "\n",
    "$$\n",
    "\\mathbb E[\\mathbf x] = \\mu\n",
    "$$\n",
    "\n",
    "考虑二阶矩，令 $\\mathbf{z=x-\\mu}$：\n",
    "\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\mathbb E[\\mathbf x\\mathbf x^\\top] & = \\frac{1}{(2\\pi)^{D/2}} \\frac{1}{|\\mathbf\\Sigma|^{1/2}} \\int \\exp \\left\\{-\\frac{1}{2}(\\mathbf x - \\mathbf \\mu)^\\top\\mathbf\\Sigma^{-1}(\\mathbf x - \\mathbf \\mu)\\right\\} \\mathbf x  \\mathbf x^\\top d\\mathbf x\\\\\n",
    "& = \\frac{1}{(2\\pi)^{D/2}} \\frac{1}{|\\mathbf\\Sigma|^{1/2}} \\int \\exp \\left\\{-\\frac{1}{2}\\mathbf z^\\top\\mathbf\\Sigma^{-1}\\mathbf z\\right\\} \\mathbf{(z+\\mu)} \\mathbf{(z+\\mu)}^\\top d\\mathbf z\n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "展开后面的乘积，$\\mathbf{\\mu z}^\\top$ 和 $\\mathbf{z\\mu}^\\top$ 项的积分会因为奇函数的性质消去，$\\mathbf{\\mu\\mu}^\\top$ 项是常数乘以分布，因此只剩下 $\\mathbf{\\mu\\mu}^\\top$。现在考虑 $\\mathbf{zz}^\\top$ 项：\n",
    "\n",
    "从之前的推导中，我们知道：\n",
    "\n",
    "$$\n",
    "\\mathbf{z=x-\\mu=Uy}=\\sum_{j=1}^D y_j \\mathbf u_j\n",
    "$$\n",
    "\n",
    "$$\n",
    "\\mathbf z^\\top\\mathbf\\Sigma^{-1}\\mathbf z = \\sum_{k=1}^D \\frac{y_k^2}{\\lambda_k}\n",
    "$$\n",
    "\n",
    "其中 $y_j = \\mathbf u_j^\\top \\mathbf z$。\n",
    "\n",
    "因此我们有：\n",
    "\n",
    "\\begin{aligned}\n",
    "& \\frac{1}{(2\\pi)^{D/2}} \\frac{1}{|\\mathbf\\Sigma|^{1/2}} \\int \\exp \\left\\{-\\frac{1}{2}\\mathbf z^\\top\\mathbf\\Sigma^{-1}\\mathbf z\\right\\} \\mathbf{z} \\mathbf{z}^\\top d\\mathbf z \\\\\n",
    "= & \\frac{1}{(2\\pi)^{D/2}} \\frac{1}{|\\mathbf\\Sigma|^{1/2}} \\sum_{i=1}^D \\sum_{j=1}^D \\int  \\exp \\left\\{-\\sum_{k=1}^D \\frac{y_k^2}{2\\lambda_k}\\right\\} y_iy_j \\mathbf u_i \\mathbf u_j^\\top d\\mathbf y\n",
    "\\end{aligned}\n",
    "\n",
    "当 $i \\neq j$ 时，奇函数的性质使得积分为 0，所以只有 $i = j$ 的积分项才能保留，因此：\n",
    "\n",
    "$$\n",
    "\\mathbb E[\\mathbf{zz}^\\top] = \\sum_{i=1}^D \\mathbf{u}_i \\mathbf u_i^\\top \\lambda_i = \\mathbf \\Sigma\n",
    "$$\n",
    "\n",
    "$i=j$ 时，非 $i$ 项的 $y_k$ 的积分为 1，$i$ 项的积分相当于对一个均值为 $0$，方差为 $\\lambda_i$ 的一维高斯函数求二阶矩，因此为 $0^2 + \\lambda_i = \\lambda_i$。\n",
    "\n",
    "所以二阶矩为\n",
    "\n",
    "$$\n",
    "\\mathbb E[\\mathbf{xx}^\\top] = \\mathbf{\\Sigma + \\mu\\mu}^\\top\n",
    "$$\n",
    "\n",
    "从而协方差矩阵为\n",
    "\n",
    "$$\n",
    "{\\rm cov}[{\\bf x}] = \\mathbb E[(\\bf x-\\mathbb E[\\bf x])(\\bf x-\\mathbb E[\\bf x])^\\top] = \\mathbb E[\\mathbf{xx}^\\top] - \\mathbb E[\\bf x]\\mathbb E[\\bf x]^\\top = \\bf \\Sigma\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 高斯分布的局限性"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "尽管高斯分布是一个广泛使用的模型，但是它仍然存在一定的局限性。\n",
    "\n",
    "一个 $D$ 维的高斯分布的独立参数的数量级是 $O(D^2)$ 的（协方差 $D(D+1)/2$，均值 $D$），因此随着 $D$ 的增大，参数量的增长是平方量级的，此外，求逆操作的时间复杂度也随之增大。\n",
    "\n",
    "一个解决这个问题的方法是限制协方差矩阵的形式，例如将其限制为对角形式 $\\bf \\Sigma={\\rm diag}(\\sigma_i^2)$，或者更进一步，限制为 $\\bf \\Sigma = \\sigma^2 \\bf I$，即各向同性（`isotropic`）的高斯分布。\n",
    "\n",
    "但这样做限制了高斯分布的自由度。\n",
    "\n",
    "一般高斯分布，对角线形式的高斯分布和各向同性的高斯分布的等高线如下图所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\non0DqyGGBtqWK/cAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f22650625c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib.mlab import bivariate_normal\n",
    "\n",
    "x, y = np.mgrid[-1:1:.01, -1:1:.01]\n",
    "\n",
    "fig, ax = plt.subplots(1, 3, figsize=(10, 3))\n",
    "\n",
    "# 斜的椭圆\n",
    "z = bivariate_normal(x, y, sigmax=2, sigmay=1, sigmaxy=1.5)\n",
    "ax[0].contour(x, y, z, colors=\"r\", \n",
    "              levels=np.linspace(0.1*z.min() + 0.9*z.max(), z.max(), 5))\n",
    "\n",
    "ax[0].set_xticks([])\n",
    "ax[0].set_yticks([])\n",
    "\n",
    "\n",
    "# 坐标轴平行的椭圆\n",
    "z = bivariate_normal(x, y, sigmax=2, sigmay=1, sigmaxy=0)\n",
    "ax[1].contour(x, y, z, colors=\"r\", \n",
    "              levels=np.linspace(0.2*z.min() + 0.8*z.max(), z.max(), 5))\n",
    "\n",
    "ax[1].set_xticks([])\n",
    "ax[1].set_yticks([])\n",
    "\n",
    "# 圆\n",
    "z = bivariate_normal(x, y, sigmax=2, sigmay=2, sigmaxy=0)\n",
    "ax[2].contour(x, y, z, colors=\"r\", \n",
    "              levels=np.linspace(0.25*z.min() + 0.75*z.max(), z.max(), 5))\n",
    "\n",
    "ax[2].set_xticks([])\n",
    "ax[2].set_yticks([])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "高斯分布的另一个问题在于他只有一个峰值（`unimodal`），所以不能很好的表示多模态（`multimodal`）的分布。之后我们可以看到，这个问题可以通过引入隐变量来解决。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3.1 条件高斯分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "高斯分布的一个重要性质是如果两组变量的联合分布是高斯分布，那么其中一组相对于另一组的条件分布也是高斯分布，每组变量的边缘分布也是高斯的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基本设定"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "考虑 $D$ 维的高斯分布 $p(\\mathbf x)= \\cal N(\\bf x~|~\\bf{\\mu,\\Sigma})$，将其分成两组变量 ${\\bf x}_a, {\\bf x}_b$。不失一般性，我们假设 ${\\bf x}_a$ 是 $\\bf x$ 的前 $M$ 个分量，${\\bf x}_b$ 是 $\\bf x$ 的后 $D-M$ 个分量，即\n",
    "\n",
    "$$\n",
    "{\\bf x} = \\begin{pmatrix}\n",
    "{\\bf x}_a \\\\\n",
    "{\\bf x}_b\n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "对应的均值和协方差矩阵可以写为：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "{\\bf \\mu} & = \\begin{pmatrix}\n",
    "{\\bf \\mu}_a \\\\\n",
    "{\\bf \\mu}_b\n",
    "\\end{pmatrix} \\\\\n",
    "{\\bf \\Sigma} & = \\begin{pmatrix}\n",
    "{\\bf \\Sigma}_{aa} & {\\bf \\Sigma}_{ab} \\\\\n",
    "{\\bf \\Sigma}_{ba} & {\\bf \\Sigma}_{bb} \n",
    "\\end{pmatrix}\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "由 ${\\bf\\Sigma = \\Sigma}^{\\text T}$，我们可以知道 ${\\bf \\Sigma}_{aa}, {\\bf \\Sigma}_{bb}$ 是对称的，且 ${\\bf \\Sigma}_{ab}={\\bf \\Sigma}_{ba}^\\top$。\n",
    "\n",
    "为了方便，我们使用协方差的逆矩阵，或者叫精确度矩阵（`precision matrix`）：\n",
    "\n",
    "$$\n",
    "{\\bf\\Lambda \\equiv \\Sigma}^{-1}\n",
    "$$\n",
    "\n",
    "它可以写成：\n",
    "\n",
    "$$\n",
    "{\\bf \\Lambda} = \\begin{pmatrix}\n",
    "{\\bf \\Lambda}_{aa} & {\\bf \\Lambda}_{ab} \\\\\n",
    "{\\bf \\Lambda}_{ba} & {\\bf \\Lambda}_{bb} \n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "由对称性，我们有 ${\\bf \\Lambda}_{aa}, {\\bf \\Lambda}_{bb}$ 是对称的，且 ${\\bf \\Lambda}_{ab}={\\Lambda}_{ba}^\\top$。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用精确度矩阵表示"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们不从条件分布的定义出发计算，换一个角度，考虑二次型的部分：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "-\\frac{1}{2}(\\mathbf x - \\mathbf \\mu)^\\top\\mathbf\\Sigma^{-1}(\\mathbf x - \\mathbf \\mu) = \n",
    "& \n",
    "-\\frac{1}{2}(\\mathbf x_a - \\mathbf \\mu_a)^\\top\\mathbf\\Lambda_{aa}(\\mathbf x_a - \\mathbf \\mu_a) -\n",
    "\\frac{1}{2}(\\mathbf x_a - \\mathbf \\mu_a)^\\top\\mathbf\\Lambda_{ab}(\\mathbf x_b - \\mathbf \\mu_b) \n",
    "\\\\\n",
    "& - \\frac{1}{2}(\\mathbf x_b - \\mathbf \\mu_b)^\\top\\mathbf\\Lambda_{ba}(\\mathbf x_a - \\mathbf \\mu_a) -\n",
    "\\frac{1}{2}(\\mathbf x_b - \\mathbf \\mu_b)^\\top\\mathbf\\Lambda_{bb}(\\mathbf x_b - \\mathbf \\mu_b)\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "我们看到，对于 $\\mathbf x_a$ 来说，它仍然是一个二次型，因此，条件分布 $p(\\mathbf x_a|\\mathbf x_b)$ 应该是一个高斯分布。\n",
    "\n",
    "因为高斯分布由其均值和协方差完全确定，我们的目的变为计算条件分布的均值和方差。\n",
    "\n",
    "为了计算均值和方法，我们可以使用配方法，对于一个高斯分布来说，我们有：\n",
    "\n",
    "$$\n",
    "-\\frac{1}{2}(\\mathbf x - \\mathbf \\mu)^\\top\\mathbf\\Sigma^{-1}(\\mathbf x - \\mathbf \\mu) = -\\frac{1}{2}\\mathbf x^\\top \\mathbf\\Sigma^{-1} \\mathbf x + \\mathbf x^\\top \\mathbf\\Sigma^{-1} \\mathbf \\mu + {\\rm const}\n",
    "$$\n",
    "\n",
    "其中常量表示与 $\\mathbf x$ 无关的部分，另外用到了 $\\bf \\Sigma$ 的对称性。\n",
    "\n",
    "这告诉我们，$\\mathbf\\Sigma^{-1}$ 是 $\\mathbf x$ 二次项的中间部分，$\\mathbf x$ 一次项的中间部分是 $\\mathbf\\Sigma^{-1} \\mathbf \\mu$。\n",
    "\n",
    "回过头来，我们观察到二次型部分中，$\\mathbf x_a$ 的二次项为：\n",
    "\n",
    "$$\n",
    "-\\frac{1}{2}\\mathbf x_a^\\top \\mathbf\\Lambda_{aa} \\mathbf x_a\n",
    "$$\n",
    "\n",
    "我们立刻可以得到条件分布 $p(\\mathbf x_a|\\mathbf x_b)$ 的协方差矩阵为：\n",
    "$$\n",
    "\\mathbf \\Sigma_{a|b} = \\mathbf\\Lambda_{aa}^{-1}\n",
    "$$\n",
    "\n",
    "在考虑含有 $\\mathbf x_a$ 的线性部分（利用 $\\mathbf\\Lambda_{ab} = \\mathbf\\Lambda_{ba}^\\top$）：\n",
    "\n",
    "$$\n",
    "\\mathbf x_a^\\top\\{\\mathbf \\Lambda_{aa}\\mathbf\\mu_a - \\mathbf \\Lambda_{ab}(\\mathbf x_b - \\mathbf \\mu_b)\\}\n",
    "$$\n",
    "\n",
    "我们可以得到：\n",
    "\n",
    "$$\n",
    "\\mathbf \\Sigma_{a|b}^{-1}\\mathbf \\mu_{a|b} = \\mathbf \\Lambda_{aa}\\mathbf\\mu_a - \\mathbf \\Lambda_{ab}(\\mathbf x_b - \\mathbf \\mu_b)\n",
    "$$\n",
    "\n",
    "从而：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mathbf \\mu_{a|b} & = \\mathbf \\Sigma_{a|b}\\{\\mathbf \\Lambda_{aa}\\mathbf\\mu_a - \\mathbf \\Lambda_{ab}(\\mathbf x_b - \\mathbf \\mu_b)\\} \\\\\n",
    "& = \\mathbf \\mu_a - \\mathbf\\Lambda_{aa}^{-1}\\mathbf \\Lambda_{ab}(\\mathbf x_b - \\mathbf \\mu_b)\n",
    "\\end{align}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用协方差矩阵表示"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们也可以使用协方差矩阵的分量来表示条件分布的均值和方差，首先我们使用分块矩阵的 Schur 补（`Schur complement`）来表示分块矩阵的逆：\n",
    "\n",
    "$$\n",
    "\\begin{pmatrix}\n",
    "\\bf A & \\bf B \\\\\n",
    "\\bf C & \\bf D \\\\\n",
    "\\end{pmatrix}^{-1}\n",
    "= \\begin{pmatrix}\n",
    "\\bf M & {\\bf -MBD}^{-1} \\\\\n",
    "-{\\bf D}^{-1}{\\bf CM} & {\\bf D}^{-1}+{\\bf CMBD}^{-1} \\\\\n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "其中 $\\mathbf M =(\\mathbf{A - BD}^{-1}\\mathbf C)^{-1}$，是分块矩阵的 Schur 补。\n",
    "\n",
    "结合定义式：\n",
    "\n",
    "$$\n",
    "\\begin{pmatrix}\n",
    "{\\bf \\Sigma}_{aa} & {\\bf \\Sigma}_{ab} \\\\\n",
    "{\\bf \\Sigma}_{ba} & {\\bf \\Sigma}_{bb} \n",
    "\\end{pmatrix}^{-1} = \\begin{pmatrix}\n",
    "{\\bf \\Lambda}_{aa} & {\\bf \\Lambda}_{ab} \\\\\n",
    "{\\bf \\Lambda}_{ba} & {\\bf \\Lambda}_{bb} \n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "我们有：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "{\\bf \\Lambda}_{aa} & = (\\mathbf{\\Sigma}_{aa} - \\mathbf\\Sigma_{ab}\\mathbf\\Sigma_{bb}^{-1}\\mathbf \\Sigma_{ba})^{-1} \\\\\n",
    "{\\bf \\Lambda}_{ab} & = -(\\mathbf{\\Sigma}_{aa} - \\mathbf\\Sigma_{ab}\\mathbf\\Sigma_{bb}^{-1}\\mathbf \\Sigma_{ba})^{-1}\\mathbf\\Sigma_{ab}\\mathbf\\Sigma_{bb}^{-1}\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "带入均值和方差的表达式，我们有：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mathbf \\mu_{a|b} & = \\mathbf \\mu_a - \\mathbf\\Lambda_{aa}^{-1}\\mathbf \\Lambda_{ab}(\\mathbf x_b - \\mathbf \\mu_b) \\\\\n",
    "& = \\mu_a + \\mathbf\\Sigma_{ab}\\mathbf\\Sigma_{bb}^{-1} (\\mathbf x_b-\\mathbf \\mu_b) \\\\\n",
    "\\mathbf \\Sigma_{a|b} & = \\mathbf\\Lambda_{aa}^{-1} \\\\\n",
    "& = \\mathbf{\\Sigma}_{aa} - \\mathbf\\Sigma_{ab}\\mathbf\\Sigma_{bb}^{-1}\\mathbf \\Sigma_{ba} \\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "可以看到，使用精确度矩阵表示形式上更简单一些。\n",
    "\n",
    "注意到，条件分布 $p(\\mathbf x_a|\\mathbf x_b)$ 的均值与 $\\mathbf x_b$ 呈线性关系，而协方差与 $\\mathbf x_a$ 独立，这表示了一个线性高斯模型。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3.2 边缘高斯分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在考虑边缘分布的形式：\n",
    "\n",
    "$$\n",
    "p(\\mathbf x_a)=\\int p(\\mathbf x_a, \\mathbf x_b) d\\mathbf x_b\n",
    "$$\n",
    "\n",
    "它也是一个高斯分布。\n",
    "\n",
    "因为是对 $\\mathbf x_b$ 的积分，我们考虑二次型中关于 $\\mathbf x_b$ 的部分：\n",
    "\n",
    "$$\n",
    "-\\frac{1}{2}\\mathbf x_b^{\\text T}\\mathbf\\Lambda_{bb}\\mathbf x_b + \\mathbf x_b^\\top\\mathbf m =\n",
    "-\\frac{1}{2} (\\mathbf x_b-\\mathbf\\Lambda^{-1}_{bb}\\mathbf m)^\\top (\\mathbf x_b-\\mathbf\\Lambda^{-1}_{bb}\\mathbf m) +\n",
    "\\frac{1}{2} \\mathbf m^\\top\\mathbf \\Lambda_{bb}^{-1}\\mathbf m\n",
    "$$\n",
    "\n",
    "其中\n",
    "\n",
    "$$\n",
    "\\mathbf m = \\mathbf\\Lambda_{bb}\\mathbf\\mu_{b}-\\mathbf\\Lambda_{ba}(\\mathbf x_a - \\mathbf\\mu_a)\n",
    "$$\n",
    "\n",
    "是一个与 $\\mathbf x_b$ 无关的项。\n",
    "\n",
    "配方之后我们发现，关于 $\\mathbf x_b$ 的二次型部分可以拆分为两部分：一个高斯分布的二次型再加上一个 跟 $\\mathbf x_b$ 无关的部分。\n",
    "\n",
    "对于高斯分布的二次型部分，积分\n",
    "\n",
    "$$\n",
    "\\int \\exp\\left\\{-\\frac{1}{2} (\\mathbf x_b-\\mathbf\\Lambda^{-1}_{bb}\\mathbf m)^\\top (\\mathbf x_b-\\mathbf\\Lambda^{-1}_{bb}\\mathbf m)\\right\\} d\\mathbf x_b\n",
    "$$\n",
    "\n",
    "是一个与 $\\mathbf x_a, \\mathbf x_b$ 无关的常数项。\n",
    "\n",
    "考虑第二部分，并加上与 $\\mathbf x_a$ 有关的项，我们有：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "& \\frac{1}{2} \\mathbf m^\\top\\mathbf \\Lambda_{bb}^{-1}\\mathbf m \n",
    "-\\frac{1}{2}\\mathbf x_a^\\top \\mathbf\\Lambda_{aa} \\mathbf x_a + \\mathbf x_a^\\top\\{\\mathbf \\Lambda_{aa}\\mathbf\\mu_a + \\mathbf \\Lambda_{ab}\\mathbf \\mu_b\\} + \\text{const} \\\\\n",
    "= & -\\frac{1}{2} \\mathbf x_a^\\top (\\mathbf\\Lambda_{aa} -  \\mathbf\\Lambda_{ba}\\mathbf\\Lambda_{bb}^{-1}\\mathbf\\Lambda_{ba})\\mathbf x_a + \\mathbf x_a^\\top (\\mathbf\\Lambda_{aa} -  \\mathbf\\Lambda_{ba}\\mathbf\\Lambda_{bb}^{-1}\\mathbf\\Lambda_{ba}) \\mathbf \\mu_a + \\text{const}\n",
    "\\end{align} \n",
    "$$\n",
    "\n",
    "从之前的讨论立即可以得到协方差矩阵：\n",
    "\n",
    "$$\n",
    "\\mathbf\\Sigma_a = (\\mathbf\\Lambda_{aa} -  \\mathbf\\Lambda_{ba}\\mathbf\\Lambda_{bb}^{-1}\\mathbf\\Lambda_{ba})^{-1}\n",
    "$$\n",
    "\n",
    "以及均值\n",
    "\n",
    "$$\n",
    "\\mathbf\\Sigma_a (\\mathbf\\Lambda_{aa} -  \\mathbf\\Lambda_{ba}\\mathbf\\Lambda_{bb}^{-1}\\mathbf\\Lambda_{ba}) \\mathbf \\mu_a = \\mathbf\\mu_a\n",
    "$$\n",
    "\n",
    "再来利用之前 `Schur` 补的结论：\n",
    "\n",
    "$$\n",
    "\\begin{pmatrix}\n",
    "\\bf A & \\bf B \\\\\n",
    "\\bf C & \\bf D \\\\\n",
    "\\end{pmatrix}^{-1}\n",
    "= \\begin{pmatrix}\n",
    "\\bf M & {\\bf -MBD}^{-1} \\\\\n",
    "-{\\bf D}^{-1}{\\bf CM} & {\\bf D}^{-1}+{\\bf CMBD}^{-1} \\\\\n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "其中 $\\mathbf M =(\\mathbf{A - BD}^{-1}\\mathbf C)^{-1}$，是分块矩阵的 Schur 补。\n",
    "\n",
    "$$\n",
    "\\begin{pmatrix}\n",
    "{\\bf \\Lambda}_{aa} & {\\bf \\Lambda}_{ab} \\\\\n",
    "{\\bf \\Lambda}_{ba} & {\\bf \\Lambda}_{bb} \n",
    "\\end{pmatrix}^{-1} =\n",
    "\\begin{pmatrix}\n",
    "{\\bf \\Sigma}_{aa} & {\\bf \\Sigma}_{ab} \\\\\n",
    "{\\bf \\Sigma}_{ba} & {\\bf \\Sigma}_{bb} \n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "\n",
    "我们用协方差矩阵来表示这个结果，可以得到：\n",
    "\n",
    "$$\n",
    "\\mathbf \\Sigma_{aa} = (\\mathbf\\Lambda_{aa} -  \\mathbf\\Lambda_{ba}\\mathbf\\Lambda_{bb}^{-1}\\mathbf\\Lambda_{ba})^{-1}\n",
    "$$\n",
    "\n",
    "从而：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mathbb E[\\mathbf x_a]& = \\mathbf\\mu_a\\\\ \n",
    "{\\rm cov}[\\mathbf x_a]&=\\mathbf \\Sigma_{aa}\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "可以看到，边缘分布的均值和协方差就是原来的均值和协方差中相对应的部分。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 结论"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "已知 $p(\\mathbf x)= \\cal N(\\bf x~|~\\bf{\\mu,\\Sigma})$ 以及 $\\mathbf\\Lambda\\equiv\\mathbf\\Sigma^{-1}$ 以及\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "{\\bf x} = \\begin{pmatrix}\n",
    "{\\bf x}_a \\\\\n",
    "{\\bf x}_b\n",
    "\\end{pmatrix},~& {\\bf \\mu} = \\begin{pmatrix}\n",
    "{\\bf \\mu}_a \\\\\n",
    "{\\bf \\mu}_b\n",
    "\\end{pmatrix} \\\\\n",
    "{\\bf \\Sigma} = \\begin{pmatrix}\n",
    "{\\bf \\Sigma}_{aa} & {\\bf \\Sigma}_{ab} \\\\\n",
    "{\\bf \\Sigma}_{ba} & {\\bf \\Sigma}_{bb} \n",
    "\\end{pmatrix},~& {\\bf \\Lambda} = \\begin{pmatrix}\n",
    "{\\bf \\Lambda}_{aa} & {\\bf \\Lambda}_{ab} \\\\\n",
    "{\\bf \\Lambda}_{ba} & {\\bf \\Lambda}_{bb} \n",
    "\\end{pmatrix}\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "条件分布为：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "p(\\mathbf x_a|\\mathbf x_b) & = \\mathcal N (\\mathbf x|\\mathbf \\mu_{a|b}, \\mathbf \\Lambda_{aa}^{-1}) \\\\\n",
    "\\mathbf \\mu_{a|b} & = \\mathbf \\mu_a - \\mathbf \\Lambda_{aa}^{-1}\\mathbf \\Lambda_{ab} (\\mathbf x_b-\\mathbf \\mu_b)\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "边缘分布为：\n",
    "\n",
    "$$\n",
    "p(\\mathbf x_a)=\\mathcal N (\\mathbf x_a|\\mathbf \\mu_{a}, \\mathbf \\Sigma_{aa})\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nZ52V7L139/sKzBEf+tA50/GOAAAgAElEQVTIIaSlJK9+de/6w0A47LAmMfatbyWPfezG778nf5GV\n2Xb4QK255TV/37X+QadIigEAAAB02KpVzffaD3tYcvTRyfnnj11vwYLkmc9MLr88+dSnkr326m4/\ngTlm3brkXe8aeeyEEwwbZdYcckjzN+nb304e97jh47/PdvmXvHJE3e2+9pk861H/ly98YewHOqAf\nSIoBAAAAdMj//m/y8pcnO++cvPCFTbJrLEuWJC95SbNm2JlnJg95SHf7CcxRn/lMcv31I4+dfHJv\n+sJAe8xjkm98o1lz7IQTmgGJ78pf5o5s9Yc6C7Mhj//R23LCCcluuyVvelNy3XU97DRMg6QYAAAA\nwCy6++7k4x9PDjww2Xff5P3vT26/fey6O+6YvPnNzZeKH/hA8qAHdbevwBxWa/LOd448dtBByQEH\n9KY/zAvLlyef+1xy1VXJs/7iXjlj8StGvP/MfCq75xe54Ybm79cDHpAcd1zy5S8n69f3ps8wFZJi\nAAAAADNUa3LppcmrXtWMCjvxxOSii8avv/fezXSK116bvPGNybJlXesq0C/e857ksstGHjNKjC55\n4AOTf/mX5AU/+6usXbzFH44vyvq8Lm//w/6GDck55yTHHpvsvnty2mnJL37Rix7D5EiKAQAAAEzT\ntdcmb3tbk+Taf//mC8SVK8euW0pyzDHJV76S/PSnyUknNdMmAmzkkks2ToDtuWczJAe6aLs9d8hm\nr3zpiGPPzcfzR/nlRnV/9avk1FObJe8OOqgZAX3LLV3qKEySpBgAAADAFKxcmfzbvyWHHtpMG/WG\nNyQ///n49e973+Rv/za5+urkS19KjjqqSZABjOm225KnPS1Zt27k8Xe/O1ng61x64OSTRzzFsTj3\n5IIdnpYdt7pr3I98//vJy17W/A08/vhmSsbVq7vRWZiYqygAAADAJtx8c/LhDzcjvXbaKXnRi5Jv\nf3vizxx5ZPMl4LXXJm95S7Lbbt3pK9DHak2e97zkmmtGHj/llCajDr1wn/skL37xiEO73XRprn/i\nSfnXM2oe8YjxP7puXfKf/5n86Z8262g+4xnN38ZVqzrcZxiHpBgAAADAGH796+R970se+9gmEfaC\nFzRTH65dO/5nhkaOrViRfO1ryQknJIsXd63LQL9717uaDEK7gw5K3vrW3vQHhgzNi9hm8dmfzgtv\n+Ydcemkz4+fLX57c+97jn+KOO5KzzmoSZDvs0PyNPPPM8acdhk4otdZe94E+UkrZJcl1SXLddddl\nl1126XGPAACgc66//vrsuuuuQ7u71lqv72V/mPvETP1tw4bkv/87OffcJvn1gx9M7nPbbdfMdPbs\nZycHHmh2M2CafvjD5OCDk3vuGT62bFny4x8n/p4wF1xxRXLAAcnttw8fKyX54hf/sN7d2rXJV7/a\nJLv+67+SNWs2fdrFi5PDD0+OProZELnnnqYZ7jf9FDdJijElAjwAAOaTfgrumBvETP3nlluS885r\nEmFf+1ryu99N7nOLFyfHHps861nNlIqbb97ZfgID7tZbk/32S371q5HHzz03eeITe9MnGMtXvtL8\nAWzPK2y1VfMkyUMfOqLqypXNVIlnnplceOHkm9h99yY5dtRRTbJsiy1mp+t0Tj/FTZJiTIkADwCA\n+aSfgjvmBjHT3LdqVfL97zdfzn3zm8nFFzcjxCZjiy2aL+hOOKFJhG27bUe7CswXtSZPfnJyzjkj\nj7/+9cnf/31v+gQTecc7kr/+65HHdt+9+aM6zvyJN9zQzAz6uc81f4PXr59cU5tvnjzmMc1Uxocd\nluy/v2mJ56J+ipskxZgSAR4AAPNJPwV3zA1iprmnPQl24YXN93XtM5NtyrbbJk96UpMIe8ITPK0O\ndMDppycnnzzy2CGHJOefnyxa1Js+wURqTZ773OSTnxx5/PDDm2HXm8ha3XJLkwP+3Oea0doTrdU5\n2pZbNsvsHX54kyR75CMlyeaCfoqbJMWYEgEeAADzST8Fd8wNYqbeqjW5+upmBqeh7cc/nloSLGnW\nMjnqqGZtk8MPTzbbrDP9Bea59euTt741Oe20kVPR7bBD8j//k+y8c+/6BpuyenVy6KHN0ybtXvGK\n5D3vmfRpbr+9yaOde26zFtlvfjO1bmyxRfKoRyXLlzfLnR1wQLLTTlM7BzPXT3GTRw0AAACAvnTT\nTU3S69JLh5Ngk10TrN3Spc20TEcd1Szd88AHzn5fAUa48cZmUcJvfGPk8VKaBZgkxJjrlixJvvCF\nJiN1ww3Dx9/73uS225rE2Pbbb/I022yT/NmfNVutyWWXNQmyc89tRnpvaprFu+5KvvWtZhvygAc0\nSbI/+ZPkEY9I9t23aQcSI8WYIk89AgAwn/TTE4/MDWKmzqg1ufbaJgHWvv3619M738KFzXd4hx3W\njAQ75JDmuz2ArvjWt5KnP33sITF/93fNyDHoF5dc0iz6tWbNyOP3u1/ykY8kRx457VOvXNnMIjo0\nBfJPfzr9bu6xR7LffiM3I8pmTz/FTZJis6yUsluSVyY5JsmuSdYk+UWSzyZ5X631rllq5+lJnpfk\n4Um2S3Jjku+02rhoNtoYp10BHgAA80Y/BXdsrFvx2ag2xUwzsGFDct11yc9+llx++fDr5Zcnd945\n/fMuXJjsv/9wEuzAA5Ott561bgNMzoYNyT/8Q/LGNzbldgsXNlMpnnJKM1oM+smnPtWMfBzLS1+a\nvOMdzWJgM3TTTU1OeShJ9rOfzex8y5Yle+/dbA996PDrjjv6ZzhV/RQ3SYrNolLKk5KcmWS8wZhX\nJjmm1rpiBm0sTXJ2kqPHqbIhyZtrrR15pESABwDAfNJPwR0jdSM+G6ddMdMm1NpMcbhiRXLVVc02\nVL7yymTVqpm3sWzZ8Loiy5c3o8IkwYCeuvnm5NnPbhZNGm3nnZNPf7oZbQP96tOfTl7ykuT3v9/4\nvT32SD7+8eaplFl0000j1xG9+OKZPUQz5F73Sh70oGaN0T32GPm63XYzP/8g6qe4SVJslpRS9kvy\nvSRLk9yZ5O1JLmjt/3mSF7aqXplk/1rrHdNs56zW+dI6/7uT3JBknySvTzI08/mLa63/Op02NtG+\nAA8AgHmjn4I7hnUrPhun7XkfM9Wa3HJLM93hNdeMfL322uSXv0zumLX/4s16YA9/eDMSbPnyJhG2\n++6e8AbmiCuuSM44o0kIrFy58ftHHpl88pPN0BTod9dfnzz/+cnXv77xewsWJK9+dfLKVyb3v39H\nml+/vhk9NpQku/TSZrT5PffMXhvLljVrlj3gAcluuw2/DpXn69pl/RQ3SYrNklLKt5M8Jsk9SQ4Z\nPYVhKeW1Sf6ptXtarfXUabTx2CTnt3bPSfKUWuv6tveXJbk0yf2TrEyye631tqm2s4k+zPsADwCA\n+aOfgjuGdSM+m6DtgY2Zam0e/r7xxmb7zW+SG25o1vUa2m64odnuvrszfdh++43XA3nwg5tZxwDm\njDVrki98IfngB5u53sayYEGzdtjrX9+UYVDUmnzgA8nJJ49/Q3D44c3Iyac+teNZpNWrm0RZ+5qk\nl12W3DXrk2g3tt66WU5t552b1/byfe/b5L932inZaqvOtN8r/RQ3SYrNglLKo5P8sLV7Rq31JWPU\nWZDkp0n2SpOw2rHWum6K7XwlyVFpArs/GusXq5Ty50nOau3+da31HVNpYxJ9GNgADwAARuun4I5G\nt+KzCdrvi5ip1uZLottuS269tZnV65ZbRm4339xMSzSUBPvd75K1a7vTv223HV7bo32dj/vdzwgw\nYI5aty75yU+Sz342+chHmgvoeHbaKTnrrCYxAIPqqquS5zynGbI1nqVLk+OPb+odcUSyaFFXurZ+\nfXL11cPrlg6tYXrFFZ17sGe0LbZoLgVDSbIddkjufe9mW7ZsuHzvezfTOW63XbL55t3p23T0U9zU\nnd+ywXd8W/mjY1WotW4opXwizbQd2yU5PMl5k22glLJ1kse1dr8xwS/V55Pcnmbe/KckmdWkGAAA\nwBzX8fisV2ptBh+sWtVsd945XF61qpmS8PbbN369/fZmhNfKlSO3biW4xrPZZskDHzhynY4990z2\n2qt5klryC5iz1q9Pfv7z5JJLkh/9qHm97LLmIr0pxx/fjKK5z30630/opT33TL7zneQd70je9KYm\ncTza3Xc3CeKzzmpGjD384cm++w5vD3tYkz2aZQsXNvcee+yRHHfc8PH165upnq+4olnvtH3902uu\nSTZsmL0+3HVXk5i7+urJf2bp0iY51r5tu23zn27rrTd+3XrrZMstm22rrYbLW27Z3IfNV5Jis+Pg\n1uuqNNMXjqd9vPRBmVrQ9agkQ7+q44y7Tmqta0spP0hyZJJHlVIWz9YTjwAAAH2gG/HZpHz2s80X\nEGvWNAmooW3NmmaU1ujXoe3uu5vtrruGy0P7s/llTKctXJjsssvGa23stlvzJdQuu5j2EJhD1q4d\n+dTBbbcNzxP7m9+M3FasaOpN1g47JCedlLzwhc2ihzBfLFqUvO51yZOfnLz73clnPtM8qTOW229P\nvvvdZhuyYEGTXHvwg0cOq9pxx+HtXvdqsjxLlyaLF8+ouwsXNv9Ex/pnunZtkxj7xS82Xi/1mmua\nS0OnDd0TzkZbixY1/8m22KJ5HdqG9pcsaUamLVkysrz55s222WbNNlS+886Z96lbJMVmx16t1xW1\n1omW7fv5GJ+ZrL3HOc947RyZ5v/vnkkun2wjrak+JnK/ocJvuvEvHQAAemjUPa+v7/tDR+OzqcRM\nd77mhVmUpUmSxa1ty8k2NMctWth8CbJ0abJkabJ0yRjlJW3L5NyRZsLKnw6fQ0QJ89BEy7iMfq99\n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\nAAAAA+//A4QVP1fmVeb5AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f226527d630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats import norm\n",
    "from matplotlib.mlab import bivariate_normal\n",
    "\n",
    "x, y = np.mgrid[0:1:.01, 0:1:.01]\n",
    "\n",
    "fig, ax = plt.subplots(1, 2, figsize=(10, 4.5), dpi=200)\n",
    "\n",
    "mu_a = 0.5\n",
    "mu_b = 0.5\n",
    "sigma_aa = 0.15\n",
    "sigma_bb = 0.15\n",
    "sigma_ab = 0.0215\n",
    "\n",
    "\n",
    "# 联合分布\n",
    "\n",
    "z = bivariate_normal(x, y, \n",
    "                     mux=mu_a, \n",
    "                     muy=mu_b, \n",
    "                     sigmax=sigma_aa, \n",
    "                     sigmay=sigma_bb, \n",
    "                     sigmaxy=sigma_ab)\n",
    "\n",
    "ax[0].contour(x, y, z, colors=\"g\", \n",
    "              levels = [0.99 * z.min() + 0.01 * z.max(),\n",
    "                        0.9 * z.min() + 0.1 * z.max(), \n",
    "                        0.5 * z.min() + 0.5 * z.max()])\n",
    "\n",
    "ax[0].plot([0, 1], [0.7, 0.7], 'r')\n",
    "\n",
    "ax[0].set_xlim(0, 1)\n",
    "ax[0].set_ylim(0, 1)\n",
    "\n",
    "ax[0].set_xticks([0, 0.5, 1])\n",
    "ax[0].set_yticks([0, 0.5, 1])\n",
    "\n",
    "ax[0].set_xlabel(r\"$x_a$\", fontsize=\"xx-large\")\n",
    "ax[0].set_ylabel(r\"$x_b$\", fontsize=\"xx-large\")\n",
    "\n",
    "ax[0].text(0.2, 0.8, r\"$x_b=0.7$\", fontsize=\"xx-large\")\n",
    "ax[0].text(0.6, 0.3, r\"$p(x_a, x_b)$\", fontsize=\"xx-large\")\n",
    "\n",
    "# 边缘分布\n",
    "\n",
    "xx = np.linspace(0, 1, 100)\n",
    "\n",
    "pa = norm.pdf(xx, loc=mu_a, scale = sigma_aa)\n",
    "\n",
    "ax[1].plot(xx, pa, 'b')\n",
    "#The location (loc) keyword specifies the mean. The scale (scale) keyword specifies the standard deviation.\n",
    "#条件分布\n",
    "pa_b = norm.pdf(xx, \n",
    "                loc = mu_a + sigma_ab / sigma_bb ** 2 * (0.7 - mu_a), \n",
    "                scale = np.sqrt(sigma_aa ** 2 - sigma_ab ** 2 / sigma_bb ** 2))\n",
    "\n",
    "ax[1].set_xlabel(r\"$x_a$\", fontsize=\"xx-large\")\n",
    "\n",
    "ax[1].set_xlim(0, 1)\n",
    "ax[1].set_ylim(0, 10)\n",
    "ax[1].set_xticks([0, 0.5, 1])\n",
    "ax[1].set_yticks([0, 5, 10])\n",
    "\n",
    "ax[1].text(0.2, 7, r\"$p(x_a|x_b=0.7)$\", fontsize=\"xx-large\")\n",
    "ax[1].text(0.2, 3, r\"$p(x_a)$\", fontsize=\"xx-large\")\n",
    "\n",
    "ax[1].plot(xx, pa_b, 'r')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3.3 高斯变量的贝叶斯理论"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "之前提到 $p(\\mathbf x_a|\\mathbf x_b)$ 的均值是 $\\mathbf x_b$ 的线性函数。\n",
    "\n",
    "现在我们假设 $p(\\mathbf x)$ 是一个已知的高斯分布，而 $p(\\bf y|x)$ 是一个条件高斯分布，且其均值是 $\\bf x$ 的线性函数，方差与 $\\bf x$ 独立。这就是所谓的高斯线性模型（`linear Gaussian model`）：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "p(\\mathbf x)&=\\mathcal N(\\mathbf x~|~\\mathbf \\mu, \\mathbf \\Lambda^{-1}) \\\\\n",
    "p(\\mathbf y|\\mathbf x)&=\\mathcal N(\\mathbf y~|~\\mathbf{Ax+b}, \\mathbf L^{-1}) \\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "其中 $\\mathbf \\mu, \\mathbf A, \\mathbf b$ 是均值的参数，$\\mathbf \\Lambda, \\mathbf L$ 是精确度矩阵。$\\mathbf{x,y}$ 的维度分别为 $M, D$，则 $\\mathbf A$ 的维度为 $D\\times M$。\n",
    "\n",
    "我们的目的是求 $p(\\mathbf y)$ 的分布。\n",
    "\n",
    "考虑它们的联合分布，令 $\\mathbf z=\\begin{pmatrix}\\mathbf x\\\\ \\mathbf y\\end{pmatrix}$，则：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\ln p(\\mathbf z)&=\\ln p(\\mathbf x) + \\ln p(\\mathbf{y|x}) \\\\\n",
    "&=-\\frac{1}{2}(\\mathbf{x-\\mu})^\\top\\mathbf\\Lambda(\\mathbf{x-\\mu})\n",
    "-\\frac{1}{2}(\\mathbf{y-Ax-b})^\\top\\mathbf L(\\mathbf{y-Ax-b}) + \\text{const}\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "为了得到 $\\mathbf z$ 的精确度矩阵，我们考虑二次项：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "& -\\frac{1}{2}\\mathbf x^\\top (\\mathbf\\Lambda + \\mathbf A^{\\text T}\\mathbf L\\mathbf A) \\mathbf x -\n",
    "\\frac{1}{2}\\mathbf y^\\top \\mathbf L\\mathbf y + \n",
    "\\frac{1}{2}\\mathbf y^\\top \\mathbf L\\mathbf A\\mathbf+ \n",
    "\\frac{1}{2}\\mathbf x^\\top \\mathbf A^\\top\\mathbf L\\mathbf y \\\\\n",
    "= & -\\frac{1}{2} \n",
    "\\begin{pmatrix}\n",
    "\\mathbf x\\\\\n",
    "\\mathbf y\n",
    "\\end{pmatrix}^\\top\n",
    "\\begin{pmatrix} \n",
    "\\mathbf\\Lambda + \\mathbf A^\\top\\mathbf L\\mathbf A & -\\mathbf A^\\top\\mathbf L \\\\\n",
    "-\\mathbf L\\mathbf A & \\mathbf L\n",
    "\\end{pmatrix}\n",
    "\\begin{pmatrix}\n",
    "\\mathbf x\\\\ \n",
    "\\mathbf y\n",
    "\\end{pmatrix} \\\\\n",
    "= & -\\frac{1}{2} \\mathbf {z^\\top Rz}\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "$\\mathbf z$ 的精确度矩阵为：\n",
    "\n",
    "$$\n",
    "\\mathbf{R} =\n",
    "\\begin{pmatrix} \n",
    "\\mathbf\\Lambda + \\mathbf A^\\top \\mathbf L\\mathbf A & -\\mathbf A^\\top \\mathbf L \\\\\n",
    "-\\mathbf L\\mathbf A & \\mathbf L\n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "协方差矩阵为（使用 `Schur` 补的结论）：\n",
    "\n",
    "$$\n",
    "\\text{cov}[\\mathbf z]=\\mathbf{R}^{-1} = \\begin{pmatrix} \n",
    "\\mathbf\\Lambda + \\mathbf A^\\top\\mathbf L\\mathbf A & -\\mathbf A^\\top\\mathbf L \\\\\n",
    "-\\mathbf L\\mathbf A & \\mathbf L\n",
    "\\end{pmatrix}^{-1}\n",
    "= \\begin{pmatrix} \n",
    "\\mathbf\\Lambda^{-1} & \\mathbf\\Lambda^{-1}\\mathbf A^\\top\\\\\n",
    "\\mathbf A\\mathbf\\Lambda^{-1} & \\mathbf L^{-1}+\\mathbf A\\mathbf \\Lambda^{-1}\\mathbf A^\\top\n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "考虑线性项：\n",
    "\n",
    "$$\n",
    "\\mathbf x^\\text{T}\\mathbf{\\Lambda\\mu}-\\mathbf x^\\top\\mathbf A^\\top\\mathbf{Lb} + \\mathbf y^\\top\\mathbf{Lb} = \n",
    "\\begin{pmatrix}\n",
    "\\mathbf x\\\\ \n",
    "\\mathbf y\n",
    "\\end{pmatrix}^\\top\n",
    "\\begin{pmatrix}\n",
    "\\mathbf{\\Lambda\\mu-A}^\\top\\mathbf{Lb}\\\\ \n",
    "\\mathbf{Lb}\n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "我们有\n",
    "\n",
    "$$\n",
    "\\mathbb E[\\mathbf z]=\n",
    "\\mathbf R^{-1}\n",
    "\\begin{pmatrix}\n",
    "\\mathbf{\\Lambda\\mu-A^\\top Lb}\\\\ \n",
    "\\mathbf{Lb}\n",
    "\\end{pmatrix}\n",
    "= \\begin{pmatrix}\n",
    "\\mathbf{\\mu}\\\\ \n",
    "\\mathbf{A\\mu+b}\n",
    "\\end{pmatrix}\n",
    "$$\n",
    "\n",
    "然后我们由边缘高斯分布的结论马上可以得到：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mathbb E[\\mathbf y] &= \\mathbf{A\\mu+b} \\\\\n",
    "{\\rm cov} [\\mathbf y] &= \\mathbf L^{-1}+\\mathbf A\\mathbf \\Lambda^{-1}\\mathbf A^\\top\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "再来，我们由条件高斯分布的结论得到：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mathbb E[\\mathbf{x|y}] &= (\\mathbf\\Lambda + \\mathbf A^\\top \\mathbf L\\mathbf A)^{-1}\\left\\{ \\mathbf A^\\top \\mathbf{L(y-b)} + \\mathbf{\\Lambda\\mu} \\right\\} \\\\\n",
    "{\\rm cov} [\\mathbf{x|y}] &= (\\mathbf\\Lambda + \\mathbf A^\\top\\mathbf L\\mathbf A)^{-1}\n",
    "\\end{align}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 结论"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "已知：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "p(\\mathbf x)&=\\mathcal N(\\mathbf x~|~\\mathbf \\mu, \\mathbf \\Lambda^{-1}) \\\\\n",
    "p(\\mathbf y|\\mathbf x)&=\\mathcal N(\\mathbf y~|~\\mathbf{Ax+b}, \\mathbf L^{-1}) \\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "我们有\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "p(\\mathbf y)&=\\mathcal N(\\mathbf y~|~\\mathbf{A\\mu+b}, \\mathbf L^{-1}+\\mathbf A\\mathbf \\Lambda^{-1}\\mathbf A^\\top) \\\\\n",
    "p(\\mathbf x|\\mathbf y)&=\\mathcal N(\\mathbf y~|~\\mathbf \\Sigma\\left\\{ \\mathbf A^\\top \\mathbf{L(y-b)} + \\mathbf{\\Lambda\\mu} \\right\\}, \\mathbf \\Sigma) \\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "其中 $\\mathbf \\Sigma = (\\mathbf\\Lambda + \\mathbf A^\\top\\mathbf L\\mathbf A)^{-1}$。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3.4 高斯分布最大似然"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于一组独立同分布的高斯观测数据 $\\mathbf X=(x_1, \\dots,x_N)^\\text{T}$，\n",
    "高斯分布的似然函数为：\n",
    "\n",
    "$$\n",
    "\\ln p({\\bf X|\\mu,\\Sigma}) = -\\frac{ND}{2}\\ln (2\\pi)-\\frac{N}{2}\\ln|\\mathbf\\Sigma|-\\frac{1}{2}\\sum_{n=1}^N ({\\bf x_n-\\mu})^\\top\\mathbf\\Sigma^{-1}({\\bf x_n-\\mu})\n",
    "$$\n",
    "\n",
    "其充分统计量为\n",
    "\n",
    "$$\n",
    "\\sum_{n=1}^N \\mathbf x_n, \\sum_{n=1}^N \\mathbf x_n\\mathbf x_n^\\top\n",
    "$$\n",
    "\n",
    "考虑对 $\\mathbf\\mu$ 求偏导：\n",
    "\n",
    "$$\n",
    "\\frac{\\partial}{\\partial \\mathbf \\mu} \\ln p({\\bf X|\\mu,\\Sigma}) = \\sum_{n=1}^N \\mathbf\\Sigma^{-1} (\\bf x_n-\\mu)\n",
    "$$\n",
    "\n",
    "令其为零（严格来说要验证这是一个最大值点）：\n",
    "\n",
    "$$\n",
    "\\mathbf \\mu_{ML} = \\frac{1}{N} \\sum_{n=1}^N \\mathbf x_n\n",
    "$$\n",
    "\n",
    "所以最大似然的均值就是样本均值。\n",
    "\n",
    "协方差的最大似然是（可以求偏导，对矩阵求偏导的方法参见附录 C）\n",
    "\n",
    "$$\n",
    "{\\bf\\Sigma}_{ML} = \\frac{1}{N} \\sum_{n=1}^N (\\mathbf x_n-\\mathbf \\mu_{ML})(\\mathbf x_n-\\mathbf \\mu_{ML})^\\top\n",
    "$$\n",
    "\n",
    "另一方面，在真实的分布下，最大似然估计的均值为\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mathbb E [\\mu_{ML}] & = \\mathbf \\mu \\\\\n",
    "\\mathbb E [\\Sigma_{ML}] & = \\frac{N-1}{N} \\bf \\Sigma\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "所以最大似然估计的协方差不是无偏估计，为此，可以使用\n",
    "\n",
    "$$\n",
    "\\mathbf{\\tilde\\Sigma}=\\frac{1}{N-1} \\sum_{n=1}^N (\\mathbf x_n-\\mathbf \\mu_{ML})(\\mathbf x_n-\\mathbf \\mu_{ML})^\\top\n",
    "$$\n",
    "\n",
    "来纠正。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3.5 序列估计"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "序列化方法要求我们每次只处理一个数据，然后扔掉这个数据。\n",
    "这种方法在对于处理数据量很大（大到不能一次处理所有数据）的问题很重要。\n",
    "\n",
    "我们考虑从 $N-1$ 个观测数据到 $N$ 个观测数据时，均值的最大似然估计的变化：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mu_{ML}^{(N)} & = \\frac{1}{N} \\sum_{n=1}^N \\mathbf x_n \\\\\n",
    "& = \\frac{1}{N} \\mathbf x_N + \\frac{1}{N} \\sum_{n=1}^N-1 \\mathbf x_n\\\\\n",
    "& = \\frac{1}{N} \\mathbf x_N + \\frac{N-1}{N} \\mu_{ML}^{(N-1)} \\\\\n",
    "& = \\mu_{ML}^{(N-1)} + \\frac{1}{N}(\\mathbf x_N - \\mu_{ML}^{(N-1)})\n",
    "\\end{align} \n",
    "$$\n",
    "\n",
    "这相当于在原来的均值的基础上，增加了一个误差项 $\\mathbf x_N - \\mu_{ML}^{(N-1)}$ 的变化；同时随着 $N$ 的增大，误差项调整的权重逐渐变小。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Robbins-Monro 算法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在上面的序列估计算法中，我们得到的是最大似然解的精确结果，而在很多情况下，我们并不一定能得到精确的结果。为此，我们引入 `Robbins-Monro` 算法。\n",
    "\n",
    "考虑联合分布 $p(z,\\theta)$，$z$ 关于 $\\theta$ 的条件分布的均值是一个关于 $\\theta$ 的函数：\n",
    "\n",
    "$$\n",
    "f(\\theta)\\equiv \\mathbb E[z|\\theta]=\\int zp(z|\\theta)dz\n",
    "$$\n",
    "\n",
    "我们的目的是找到一个 $\\theta^\\star$ 使得 $f(\\theta^\\star)=0$。\n",
    "\n",
    "对于这个问题，如果我们有很多 $z$ 和 $\\theta$ 的数据，我们可以建模来解决这个问题。\n",
    "\n",
    "不过，现在假设我们每次只观察一个 $z$ 值，然后根据这个值来更新我们对 $\\theta^\\star$ 的估计，为此，我们先假定 $z$ 的条件方差是有限的：\n",
    "\n",
    "$$\n",
    "\\mathbb E[(z-f)^2|\\theta]<\\infty\n",
    "$$\n",
    "\n",
    "并且不失一般性的假设 $f(\\theta)$ 在 $\\theta^\\star$ 附近是单调递增的。`Robbins-Monro` 过程给出：\n",
    "\n",
    "$$\n",
    "\\theta^{(N)} = \\theta^{(N-1)} + a_{N-1} z(\\theta^{(N-1)})\n",
    "$$\n",
    "\n",
    "其中 $z(\\theta^{(N)})$ 是 $z$ 在 $\\theta$ 取 $\\theta^{(N)}$ 时的观测值，参数 $a_N$ 满足：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\lim_{N\\to\\infty} a_N & = 0 \\\\\n",
    "\\sum_{N=1}^\\infty a_N & = \\infty \\\\\n",
    "\\sum_{N=1}^\\infty a_N^2 & < \\infty\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "第一个条件保证了收敛性；第二个条件保证了不会收敛到最优值附近的点；第三个条件保证误差项最终不会破坏收敛性。\n",
    "\n",
    "对于最大似然问题，我们要求\n",
    "\n",
    "$$\n",
    "\\frac{\\partial}{\\partial \\theta} \\left\\{\\left.\\frac{1}{N} \\sum_{n=1}^N \\ln p({x_n|\\theta}) \\right\\}\\right|_{\\theta_{ML}} = 0\n",
    "$$\n",
    "\n",
    "交换求和和偏导，并求极限有：\n",
    "\n",
    "$$\n",
    "\\lim_{N\\to\\infty}\\frac{1}{N} \\sum_{n=1}^N \\frac{\\partial}{\\partial \\theta}\\ln p({x_n|\\theta}) = \\mathbb E_x \\left[ \\frac{\\partial}{\\partial \\theta}\\ln p({x|\\theta})\\right]\n",
    "$$\n",
    "\n",
    "我们可以看到，最大化极大似然对应与寻找一个函数的根。`Robbins-Monro` 过程给出：\n",
    "\n",
    "$$\n",
    "\\theta^{(N)} = \\theta^{(N-1)} + a_{N-1} \\frac{\\partial}{\\partial \\theta^{(N-1)}}\\ln p({x_N|\\theta^{(N-1)}})\n",
    "$$\n",
    "\n",
    "如果 $\\theta$ 是均值，我们有\n",
    "\n",
    "$$\n",
    "z = \\frac{\\partial}{\\partial \\mu_{ML}}\\ln p({x|\\mu_{ML}, \\sigma^2}) = \\frac{1}{\\sigma^2} (x-\\mu_{ML})\n",
    "$$\n",
    "\n",
    "所以 $z$ 的分布是一个均值为 $\\mu-\\mu_{ML}$ 的高斯分布，我们相应的 $a_N$ 为 $\\frac{\\sigma^2}{N}$。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3.6 高斯分布的贝叶斯估计"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "|先验|似然函数|后验|\n",
    "|:-------------:|:----------------:|:-----------------:|\n",
    "|Beta分布|二项分布|Beta分布|\n",
    "|Dirichlet分布|多项分布|Dirichlet分布|\n",
    "|高斯分布|均值未知，方差已知|高斯分布|\n",
    "|Gamma分布|均值已知，方差未知|Gamma分布|\n",
    "|Gaussian-Gamma分布|均值未知，方差未知|Gaussian-Gamma分布|\n",
    "|D维高斯分布|均值未知，方差已知|D维高斯分布|\n",
    "|Wishart分布|均值已知，方差未知|Wishart分布|\n",
    "|gaussian-Wishart分布|均值未知，方差未知|gaussian-Wishart分布|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "极大似然估计给出了均值和协方差矩阵的点估计，现在我们通过引入先验分布来考虑它的贝叶斯估计。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 均值未知，方差已知"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "考虑一维的高斯变量 $x$，并假设方差 $\\sigma^2$ 已知，有 $N$ 个数据点 $\\mathbf X=\\{x_1,\\dots,x_N\\}$，其似然函数为\n",
    "\n",
    "$$\n",
    "p(\\mathbf X|\\mu)=\\prod_{n=1}^N p(x_n|\\mu) =\\frac{1}{(2\\pi\\sigma^2)^\\frac{N}{2}} \n",
    "\\exp\\left\\{-\\frac{1}{2\\sigma^2} \\sum_{n=1}^N (x_n-\\mu)^2\\right\\}\n",
    "$$\n",
    "\n",
    "注意似然函数不是一个关于 $\\mu$ 的概率分布。\n",
    "\n",
    "考虑共轭性，我们引入一个高斯先验 $p(\\mu)$：\n",
    "\n",
    "$$\n",
    "p(\\mu)=\\mathcal N(\\mu|\\mu_0, \\sigma_0^2)\n",
    "$$\n",
    "\n",
    "因此后验分布为：\n",
    "\n",
    "$$\n",
    "p(\\mu|\\mathbf X) \\propto p(\\mathbf X|\\mu)p(\\mu)\n",
    "$$\n",
    "\n",
    "用上文类似的配方法可以得到：\n",
    "\n",
    "$$\n",
    "p(\\mu|\\mathbf X) = \\mathcal N(\\mu|\\mu_N,\\sigma_N^2)\n",
    "$$\n",
    "\n",
    "其中\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mu_N & = \\frac{\\sigma^2}{N\\sigma_0^2 + \\sigma^2} \\mu_0 + \\frac{N\\sigma_0^2}{N\\sigma_0^2 + \\sigma^2} \\mu_{ML}\\\\\n",
    "\\frac{1}{\\sigma_N^2} & = \\frac{1}{\\sigma_0^2} + \\frac{N}{\\sigma^2}\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "其中\n",
    "\n",
    "$$\n",
    "\\mu_{ML} = \\frac{1}{N} \\sum_{n=1}^N x_n\n",
    "$$\n",
    "\n",
    "当 $N = 0$ 时，后验分布就是先验分布，当 $N\\to\\infty$ 时，后验分布的参数趋于最大似然的结果。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 均值已知，方差未知"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们使用精确度 $\\lambda\\equiv 1~/~\\sigma^2$ 来进行计算，其似然函数为：\n",
    "\n",
    "$$\n",
    "p(\\mathbf X|\\lambda)=\\prod_{n=1}^N \\mathcal N(x_n|\\mu,\\lambda^{-1}) \\propto \\lambda^{N/2} \\exp\\left\\{-\\frac{\\lambda}{2} \\sum_{n=1}^N(x_n-\\mu)^2\\right\\} \n",
    "$$\n",
    "\n",
    "考虑关于 $\\lambda$ 的共轭性，我们引入的先验分布为 `Gamma` 分布：\n",
    "\n",
    "$$\n",
    "\\mathrm{Gam}(\\lambda~|~a, b) = \\frac{1}{\\Gamma(a)} b^a {\\lambda^{a-1} \\exp(-b\\lambda)}, a > 0\n",
    "$$\n",
    "\n",
    "不同参数的 `Gam` 分布的图像如下图所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f742a3d6050>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats import gamma\n",
    "\n",
    "x = np.linspace(0.01, 2, 100)\n",
    "\n",
    "fig, axes = plt.subplots(1, 3, figsize=(10, 2))\n",
    "\n",
    "A = [0.1, 1, 4]\n",
    "B = [0.1, 1, 6]\n",
    "\n",
    "for a, b, ax in zip(A, B, axes):\n",
    "    y = gamma.pdf(x, a = a, scale=1.0/b)\n",
    "    ax.plot(x, y, color=\"r\")\n",
    "    ax.set_ylim(0, 2)\n",
    "    ax.set_xticks([0, 1, 2])\n",
    "    ax.set_yticks([0, 1, 2])\n",
    "    ax.set_xlabel(r\"$\\lambda$\", fontsize=\"xx-large\")\n",
    "    ax.text(1, 1, \"$a={}$\\n$b={}$\".format(a, b), fontsize=\"xx-large\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "其均值和方差分别为：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mathbb E[\\lambda] & = \\frac{a}{b}\\\\\n",
    "{\\rm var}[\\lambda] & = \\frac{a}{b^2}\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "给定先验分布 ${\\rm Gam}(\\lambda~|~a_0, b_0)$，后验分布为：\n",
    "\n",
    "$$\n",
    "p(\\lambda|\\mathbf X)\\propto\\lambda^{a_0-1}\\lambda^{N/2} \\exp\\left\\{-b_0\\lambda_0-\\frac{\\lambda}{2} \\sum_{i=1}^N (x_n-\\mu)^2\\right\\}\n",
    "$$\n",
    "\n",
    "从而这也是一个 `Gam` 分布 ${\\rm Gam}(\\lambda~|~a_N, b_N)$，其中：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "a_N & = a_0 + \\frac N 2 \\\\\n",
    "b_N & = b_0 + \\frac{1}{2} \\sum_{i=1}^N (x_n-\\mu)^2 = b_0 + \\frac{N}{2} \\sigma^2_{ML}\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "因此，我们看到，$N$ 个数据点向参数 $a$ 添加了 $\\frac N 2$ 的贡献，因此，我们可以认为初始状态向 $a$ 贡献了 $2a_0$ 个数据点；$N$ 个数据点向参数 $b$ 添加了 $\\frac{N}{2} \\sigma^2_{ML}$ 的贡献，我们可以认为这 $2a_0$ 个数据点平均每个贡献了 $2b_0/(2a_0)=b_0/a_0$ 的方差。\n",
    "\n",
    "如果直接考虑方差，而不是精确度，我们使用的先验将是逆 `Gamma` 分布。不过用精确度表示起来更加方便。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 均值和方差都未知"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在这种情况下，似然函数为：\n",
    "\n",
    "$$\n",
    "p(\\mathbf X|\\mu, \\lambda)=\\left(\\frac{\\lambda}{2\\pi}\\right)^\\frac{N}{2}\n",
    "\\exp\\left\\{-\\frac{\\lambda}{2} \\sum_{n=1}^N (x_n-\\mu)^2\\right\\}\n",
    "\\propto \\left[\\lambda^{1/2} \\exp\\left(-\\frac{\\lambda\\mu^2}{2}\\right)\\right]^N\n",
    "\\exp\\left\\{ \\lambda\\mu \\sum_{n=1}^N x_n - \\frac{\\lambda}{2} \\sum_{n=1}^N x_n^2 \\right\\}\n",
    "$$\n",
    "\n",
    "这是一个指数族函数（`exponential family`）的形式。\n",
    "\n",
    "由共轭性，考虑这样的先验分布：\n",
    "\n",
    "$$\n",
    "p(\\mu,\\lambda)\\propto \\left[\\lambda^{1/2} \\exp\\left(-\\frac{\\lambda\\mu^2}{2}\\right)\\right]^\\beta\n",
    "\\exp\\left\\{ c\\lambda\\mu  - d\\lambda \\right\\}\n",
    "= \\exp\\left\\{-\\frac{\\beta\\lambda}{2}(\\mu-c/\\beta)^2\\right\\} \\lambda^{\\beta/2}\n",
    "\\exp\\left\\{-\\left(d-\\frac{c^2}{2\\beta}\\right)\\lambda\\right\\}\n",
    "$$\n",
    "\n",
    "由于 $p(\\mu,\\lambda) = p(\\mu|\\lambda)p(\\lambda)$，通过观察我们发现：\n",
    "\n",
    "$$\n",
    "p(\\mu,\\lambda) = \\mathcal N(\\mu|\\mu_0, (\\beta\\lambda)^{-1}) \\mathrm{Gam}(\\lambda|a,b)\n",
    "$$\n",
    "\n",
    "其中 $\\mu_0 = c/\\beta, a=1+\\beta/2, b=d-c^2/(2\\beta)$。这个分布叫做高斯-伽马分布（`Gaussian-gamma`）或者正态-伽马分布（`normal-gamma`），其图像如图所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f742a2a9710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats import gamma\n",
    "\n",
    "mu, lam = np.mgrid[-2:2:.01, 0.01:2:.01]\n",
    "\n",
    "a, b = 5, 6\n",
    "mu_0 = 0\n",
    "beta = 2\n",
    "\n",
    "z = (beta*lam/2/np.pi) ** 1/2 * np.exp(- beta*lam/2 * (mu-mu_0)**2) \\\n",
    "    * gamma.pdf(lam, a=a, scale=1.0/b)\n",
    "    \n",
    "fig, ax = plt.subplots()\n",
    "\n",
    "ax.contour(mu, lam, z, colors='r')\n",
    "ax.set_xticks([-2, 0, 2])\n",
    "ax.set_yticks([0, 1, 2])\n",
    "\n",
    "ax.set_xlabel(r\"$\\mu$\", fontsize=\"xx-large\")\n",
    "ax.set_ylabel(r\"$\\lambda$\", fontsize=\"xx-large\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在 $D$ 维高斯分布 $\\mathcal N(\\mathbf x|\\mathbf\\mu, \\mathbf\\Lambda^{-1})$ 的情况下，若均值未知，精确度矩阵已知，先验分布为：\n",
    "\n",
    "$$\\mathcal N(\\mathbf \\mu|\\mathbf \\mu_0, \\mathbf\\Lambda_0^{-1})$$\n",
    "\n",
    "若均值已知，精确度矩阵未知，先验分布为 `Wishart` 分布：\n",
    "\n",
    "$$\n",
    "\\mathcal W(\\mathbf\\Lambda|\\mathbf W, \\nu)=B|\\mathbf\\Lambda|^{(\\nu-D-1)/2} \n",
    "\\exp\\left(-\\frac{1}{2}\\mathrm{Tr}(\\mathbf W^{-1}\\mathbf\\Lambda)\\right)\n",
    "$$\n",
    "\n",
    "其中 $\\nu$ 叫做分布的自由度（`degrees of freedom`），$\\mathbf W$ 是一个 $D\\times D$ 矩阵，$\\rm Tr$ 是矩阵的迹,归一化参数 $B$ 为\n",
    "\n",
    "$$\n",
    "B(\\mathbf W, \\nu) = |\\mathbf W|^{-\\nu/2}\n",
    "\\left(2^{\\mu D/2} \\pi^{D(D-1)/4} \\prod_{i=1}^D \n",
    "\\Gamma\\left(\\frac{\\nu+1-i}{2}\\right)\\right)^{-1}\n",
    "$$\n",
    "\n",
    "若均值和精确度矩阵都未知，先验分布为 `normal-Wishart`（或者 `Gaussian-Wishart`）分布：\n",
    "\n",
    "$$\n",
    "\\mathcal N(\\mathbf \\mu|\\mathbf \\mu_0, (\\beta\\mathbf\\Lambda)^{-1})\n",
    "\\mathcal W(\\mathbf\\Lambda|\\mathbf W, \\nu)\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3.7 学生 t 分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "之前我们看到精确度的先验分布是一个 Gamma 分布。现在考虑一个单变量高斯分布 $\\mathcal N(x|\\mu,\\tau^{-1})$ 和精确度的一个伽马分布先验 ${\\rm Gam}(\\tau|a,b)$，我们对精确度进行积分之后，得到 $x$ 的边缘分布为\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "p(x|\\mu, a,b) & = \\int_{0}^{\\infty} \\mathcal N(x|\\mu,\\tau^{-1}) {\\rm Gam}(\\tau|a,b) d\\tau \\\\\n",
    "& = \\int_{0}^{\\infty} \n",
    "\\frac{b^a e^{-b\\tau} \\tau^{a-1}}{\\Gamma(a)} \n",
    "\\left(\\frac{\\tau}{2\\pi}\\right)^{1/2}\n",
    "\\exp\\left\\{-\\frac{\\tau}{2}(x-\\mu)^2\\right\\}\n",
    "d\\tau\\\\\n",
    "& =\n",
    "\\frac{b^a}{\\Gamma(a)} \\left(\\frac{1}{2\\pi}\\right)^{1/2}\n",
    "\\left[b+\\frac{(x-\\mu)^2}{2}\\right]^{-a-1/2} \\Gamma(a+1/2)\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "（关于 $\\tau$ 可以凑成一个 ${\\rm Gam}(a+1/2, b+\\frac{(x-\\mu)^2}{2})$ 的核）\n",
    "\n",
    "令参数 $\\nu=2a, \\lambda=a/b$，我们有 \n",
    "\n",
    "$$\n",
    "\\text{St}(x|\\mu,\\lambda,\\nu)= \\frac{\\Gamma(v/2+1/2)}{\\Gamma(v/2)} \\left(\\frac{\\lambda}{\\pi\\nu}\\right)^{1/2}\n",
    "\\left[1+\\frac{\\lambda(x-\\mu)^2}{\\nu}\\right]^{-\\nu/2-1/2}\n",
    "$$\n",
    "\n",
    "这就是学生 t 分布（`Student’s t-distribution`）。其中，参数 $\\lambda$ 叫做精确度，$\\mu$ 叫做自由度。\n",
    "\n",
    "当自由度为 1 时，学生 t 分布退化为柯西分布，当自由度趋于无穷时，学生 t 分布变成均值 $\\mu$ 精度 $\\lambda$ 的高斯分布（忽略所有与 $x$ 无关的项，对 $\\nu$ 求极限，利用 $\\lim_{x\\to\\infty}(1+\\frac{1}{x})^x = e$）\n",
    "\n",
    "其概率密度函数如图所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f742a3bcfd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats import t, norm\n",
    "\n",
    "xx = np.linspace(-5, 5, 100)\n",
    "\n",
    "dfs = [0.1, 1]\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "\n",
    "for df in dfs:\n",
    "    ax.plot(xx, t.pdf(xx, df))\n",
    "\n",
    "ax.plot(xx, norm.pdf(xx))\n",
    "\n",
    "ax.set_xlim(-5, 5)\n",
    "ax.set_xticks([-5, 0, 5])\n",
    "ax.set_ylim(0, 0.5)\n",
    "    \n",
    "ax.legend([r\"$\\nu=0.1$\", r\"$\\nu=1.0$\", r\"$\\nu\\to\\infty$\"], fontsize=\"xx-large\")\n",
    "ax.set_title(r\"$\\lambda=1,\\ \\mu=0$\", fontsize=\"xx-large\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "学生 t 分布可以看成是无穷多的高斯分布的一个混合。\n",
    "\n",
    "从图中可以看出，它产生的分布的尾巴要比高斯分布的长。事实上，在有异常值的情况下，它比高斯分布更鲁棒一些："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f742a464d90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats import t, norm, uniform\n",
    "\n",
    "tt = norm.rvs(size=30)\n",
    "xx = np.linspace(-5, 10, 100)\n",
    "\n",
    "fig, axes = plt.subplots(1, 2, figsize=(10, 4))\n",
    "\n",
    "axes[0].hist(tt, \n",
    "             normed=True, \n",
    "             rwidth=0.5, \n",
    "             color=\"yellow\", \n",
    "             bins = np.linspace(-5, 10, 30))\n",
    "\n",
    "axes[0].set_xlim(-5, 10)\n",
    "axes[0].set_xticks([-5, 0, 5, 10])\n",
    "axes[1].set_ylim(0, 0.7)\n",
    "\n",
    "l, s = norm.fit(tt)\n",
    "\n",
    "axes[0].plot(xx, norm.pdf(xx, loc=l, scale=s), 'g')\n",
    "\n",
    "d, l, s = t.fit(tt)\n",
    "axes[0].plot(xx, t.pdf(xx, df=d, loc=l, scale=s), 'r')\n",
    "\n",
    "axes[0].legend([\"MLE for Gaussian\", \"MLE for t\"])\n",
    "\n",
    "\n",
    "tt1 = np.hstack([tt, uniform.rvs(size=4, loc=8, scale=2)])\n",
    "\n",
    "axes[1].hist(tt1, \n",
    "             normed=True, \n",
    "             rwidth=0.5, \n",
    "             color=\"yellow\",\n",
    "             bins = np.linspace(-5, 10, 30))\n",
    "\n",
    "axes[1].set_xlim(-5, 10)\n",
    "axes[1].set_ylim(0, 0.7)\n",
    "axes[1].set_xticks([-5, 0, 5, 10])\n",
    "\n",
    "l, s = norm.fit(tt1)\n",
    "\n",
    "axes[1].plot(xx, norm.pdf(xx, loc=l, scale=s), 'g')\n",
    "\n",
    "d, l, s = t.fit(tt1)\n",
    "axes[1].plot(xx, t.pdf(xx, df=d, loc=l, scale=s), 'r')\n",
    "\n",
    "axes[1].legend([\"MLE for Gaussian\", \"MLE for t\"])\n",
    "\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如果我们取 $\\nu=2a, \\lambda=a/b, \\eta=\\tau b /a$，我们有：\n",
    "\n",
    "$$\n",
    "\\mathrm{St}(x|\\mu,\\lambda,\\nu) = \\int_{0}^{\\infty} \\mathcal N(x~|~\\mu,(\\eta\\lambda)^{-1}) {\\rm Gam}(\\eta ~|~\\nu/2,\\nu/2) d\\eta\n",
    "$$\n",
    "\n",
    "（这也说明了学生 t 分布是一个概率分布：对 $x$ 积分等于 1。）\n",
    "\n",
    "我们看到，自由度项只在 Gamma 分布出现，因此，我们可以将其推广到高维形式：\n",
    "\n",
    "$$\n",
    "\\mathrm{St}(x|\\mathbf{\\mu,\\Lambda},\\nu) = \\int_{0}^{\\infty} \\mathcal N(x~|~{\\mathbf \\mu,(\\eta\\mathbf\\Lambda)^{-1}}) {\\rm Gam}(\\eta ~|~\\nu/2,\\nu/2) d\\eta\n",
    "$$\n",
    "\n",
    "与一维的结果类似，我们有：\n",
    "\n",
    "$$\n",
    "\\mathrm{St}(x|\\mathbf{\\mu,\\Lambda},\\nu) = \\frac{\\Gamma(v/2+D/2)}{\\Gamma(v/2)} \\frac{|\\mathbf\\Lambda|^{1/2}}{(\\pi\\nu)^{D/2}}\n",
    "\\left[1+\\frac{\\Delta^2}{\\nu}\\right]^{-\\nu/2-D/2}\n",
    "$$\n",
    "\n",
    "其中 $\\Delta^2 \\mathbf{= (x -\\mu)^\\top\\Lambda(x - \\mu)}$。\n",
    "\n",
    "学生 t 分布的均值方差和众数分别为：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\mathbb E[\\mathbf x] & = \\mathbf \\mu & {\\rm if} && \\nu > 1\\\\\n",
    "{\\rm cov}[\\mathbf x] & = \\frac{\\nu}{\\nu-2} \\mathbf\\Lambda^{-1} & {\\rm if} && \\nu > 2 \\\\\n",
    "{\\rm mode}[\\mathbf x] & = \\mathbf \\mu \\\\\n",
    "\\end{align}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3.8 周期变量和 von Mises 分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "高斯分布并不能很好的解决周期变量的问题。\n",
    "\n",
    "对于周期变量，一种解决方法是使用极坐标系 $0\\leq\\theta<2\\pi$ 的周期性，使用极坐标的角度 $\\theta$ 表示周期变量。\n",
    "\n",
    "在极坐标系下，我们需要考虑这样的问题，两个角度 $1^\\circ, 359^\\circ$ 十分接近，如果我们选择 $0^\\circ$ 作为原点，均值和标准差分别为 $180^\\circ, 179^\\circ$；选择 $180^\\circ$ 作为原点，均值和标准差分别为 $0^\\circ, 1^\\circ$。因此我们需要一种解决这种问题的特殊方法。\n",
    "\n",
    "考虑找到一组周期变量 $\\mathcal D=\\{\\theta_1,\\dots, \\theta_N\\}$ 的均值的问题。之前我们看到，随着坐标系的变化，直接计算的方法的结果也在变化。\n",
    "\n",
    "为了找到一种不随坐标原点变化的均值衡量方法，我们将这些变量看成是单位圆上的点，即将角度 $\\theta$ 映射为点 $\\mathbf x$："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nwhkqpUrBwIEwZIjrSkREjvfii/A//xPaOd/wTdTnysqChg1h0iRo3dp1NRICmqiXEvviC9uovWED\nVKrkupqSSKKJ+lxly8L/+38arYiIf/zhDzBgQNADpUDhHakAZGbCOefA7NnQrJnraiTgNFKRElm+\nHDp2tM3ZwQ+VJBypAJxyiq2w+L//c12JiCS7p56CJ54IQ6AUKNwjFYB9+2y0snSpHeEiUkwaqUix\npaZC9+52JEuFCq6r8UKSjlQAqlSBX/8afv9715WISLL6/e/hd78LS6AUKPwjFYCDB6FRI/j3v6FV\nK9fVSEBppCLFsmiR3Zfy5ZdQrpzrarySxCMVsB7ms8/aqgv9UBCRRInFbITy9NNhCpQCJUeoANx1\nl82vvPOO60pEJFl8+CFs2wa33+66koRJjvZXrjlz4KGHYNWqpHnVIN5R+0uKJBq1jdePPgq33uq6\nGq8lefsrV4cOcO65do+BiEg8jR0LZcrALbe4riShkmukArByJVx7rR2XUL2662okQDRSkULbswfO\nOw9mzoQWLVxXEw/5jlSSL1TA7rKvWhWee851JRIgChUptIcesms4Ro1yXUm8KFSOs20bNG1qG5LO\nOcd1NRIQChUplE8/hS5dYM2aMHdDNKdynFq14De/gf79tcRYRLwTjdrPlcGDwxwoBUrOUAELla1b\n4Z//dF2JiITFP/5hb3/5S5dVOJWc7a9cqanwi1/AihVw+umuqxGfU/tLCpSebpPz770Hl1ziupp4\n05xKvgYMgB07YPx415WIzylUpED9+1v766WXXFeSCAqVfB08aHetjBoF11/vuhrxMYWK5GvJEujW\nDVavhtNOc11NImiiPl+VKsGYMdCvH+zf77oaEQmagwfhzjvthWlyBEqBNFLJ1bcvnHoqDB/uuhLx\nKY1U5IQefhj27oU33nBdSSKp/XVSe/bABRfAlCnQpo3rasSHFCryE7Nnw7332lXB1aq5riaR1P46\nqdNOg2HD4J577G57EZGCpKfbz4uxY5MtUAqkkUpesRjcdpt9gyTHCg4pAo1U5Dh9+kCNGsnaMs93\npFImkVX4XiRiJxhffDFMngw9e7quSET86K234JNPIC3NdSW+o5HKiaSm2tk9S5dC/fquqxGf0EhF\nADs78KKLYPr0ZL6eXHMqRdKyJTzxhF2sk5XluhoR8Yto1OZR+vVL5kApkEYq+YlG7QiXpk3hz392\nXY34gEYqwuDBNkJZsADKlnVdjUtaUlwsO3faBTuvvAIpKa6rEccUKklu9mw7KDI1FerUcV2NawqV\nYps3z9pgn31mR+ZL0lKoJLENG+y++bfegrZtXVfjB5pTKbb27eGBB+D22yEnx3U1IpJomZnQo4fN\nsypQTkojlcLIyYFOnaB5c3jhBdfViCMaqSShWMyOcDp82O5eiuT7Aj3ZaJ9KiZQubcPe1q3tvoT7\n7nNdkYgkwssv2/XAS5YoUApJI5Wi+OoruOoqmDQJrr7adTWSYBqpJJnFi+HGG+Hjj+Hcc11X4zea\nU/FEo0YwcSL07g1r17quRkTiZft26NXLzvVSoBSJQqWorrkGnn0Wuna1A+VEJFz277cTNe67z57n\nUiRqfxXXo4/a3fbvv5/sm6CShtpfSeDIEdv0XLcujB6teZT8aZ+K53Jyjn3z/e1v+uZLAgqVkIvF\n4K674Pvv7V6lMlrHVADNqXiudGmbsF+4MFmPvhYJl4EDba500iQFSgnoX64kqlSBd9+1FWHVqtmr\nHBEJnhEj4J13YNEiqFjRdTWBplApqXr1YM4cW2JcqRLcfLPrikSkKCZPtkNjFy2CmjVdVxN4ChUv\nNGliE/adOsEpp9jKERHxv/nzoX9/OyyyXj3X1YSC5lS8ctFFMHWqnWL64YeuqxGRk0lLs70okybZ\n81c8oVDxUuvWNpS+5RbbhSsi/vTJJ3adxUsv2d4z8YxCxWvt28O4cdCtmx2XLyL+8t//Wot6zBg7\nfVg8pVCJh+uvt4PoOneGVatcVyMiuRYvtl3yr75q53qJ5zRRHy89ekBGBnTsCDNmwIUXuq5IJLkt\nWmTPy9dftxd+EhcKlXi6/XYoVw46dLAdulde6boikeS0YAHcdBNMmGAv9CRu1P6Kt1694I03oHt3\nG7GISGLNnWv7xyZNUqAkgEIlETp1gunT7Qa5CRNcVyOSPObMsdWYkyfDtde6riYpqP2VKK1b2/6V\nlBQ7Mv/hh11XJBJu//gHPP64Ws8JplBJpAsusAMoO3SA3bvhqad0urGI12IxePpp6wrMn28nXkjC\n6Oh7F3bssBHLlVfCsGFQSl3IINDR9wFw+DDce6+dNjxtGpxxhuuKwkpH3/vKz34G8+bB8uXQsycc\nOOC6IpHgS0+3+cuDB63VrEBxQqHiStWqdohdtWpw+eWwfr3rikSCa/16ex5dcolNyuv4emcUKi6V\nLw+vvAL33w9t2uggSpHiWLoUrrjCFr8MHWoX6IkzmlPxiw8/hNtugyeftCeHJvB9R3MqPvTmm/Z8\nee01O35FEkV31AfC+vV2HlHLlnbvffnyriuSPBQqPnL4MAwYADNnWrurRQvXFSUbTdQHQv36dmT+\n99/bTZLbtrmuSMR/NmywlZPffguffqpA8RmFit9UrmyvvK6/Hlq1slNVRcRMnw6XXWat4n/9yxa8\niK+o/eVn06bBfffZdae//S2U0V5Vl9T+cigrC373O5g40c7wuvxy1xUlO82pBNbWrXDXXXDoEIwf\nr3u0HVKoOLJ1K/TuDZUq2XOgZk3XFYnmVAKsTh3bz9K9u7XD/vlP1xWJJM7s2XDppbapccYMBUoA\naKQSJGlp1ku+5BIYNUr95ATTSCWB9u2Dxx6D99+3gyF1j7zfaKQSCi1a2GqXKlXgoovgo49cVyTi\nvTlzoFkziEZhxQoFSsBopBJU06fbTvx777UJTO1piTuNVOJs3z74zW9g1iwYM8ZaXuJXGqmEzi9+\nYe2wlSuheXO73U4kqGbNstEJ2EGrCpTA0kglDKZNg1/9Ctq1g+ef1+mscaKRShzs3Wujk9mz4e9/\n13W/waGRSqjdcAOsWmVH6jdtak/OaNR1VSL5i8Vs82KzZnaf0IoVCpSQ0EglbJYtgwcesI2SL79s\nISOe0EjFI8uWwSOPwK5ddkmdJuKDSCOVpHHhhXZ+2O232/lhjz9ulxaJuLZzJzz4oI1IevWyOUEF\nSugoVMKoVCno189aCps32x3dr7wC2dmuK5NklJVlI5Lzz4dy5WDNGgsXHTsUSmp/JYMlS+CJJ2DH\nDhg8GLp1030txaD2VzHMnAmPPgpnnw1//asFi4SBzv5KerGYPcEHDoRTToH/+z9bLSaFplApgmXL\n7MK5L7+0MOnSRS9kwkVzKkkvErHj9D/7zG7K69vXnujLl7uuTMIkLc3OqUtJgWuvtVWJXbsqUJKI\nQiXZlCoFffrAF1/YE79jR7jjDrt1UqS4Pv3Ubi3t0sVGwN98Y22vcuVcVyYJplBJVuXK2YbJtWvh\n3HPtJNjbbrNXmiKFlZpqI5Ebb4TrrrMweeQRqFjRdWXiiEIl2Z16Kjz9tI1ULr7YNlJed50dm6H5\nA8nP0qXQuTP06GFt1a+/thcpp5ziujJxTBP1crwjR+xmveeftz74b35jFySVLeu6MueSfqI+Kwve\neceuXVi3zhZ93H23DjNNTlr9JUUUi9lo5fnnbQXPI4/Y1cZVqriuzJmkDZXt2+3U4DFjoEEDu966\ne3e90EhuWv0lRRSJ2ET+f/4DU6faRGz9+rZpLTVVrbGwi8Vg0SK49VbbW/Ltt3Zh1vz5thtegSL5\n0EhFCm/zZhg3DsaOtYnYu++242BOP911ZQmRFCOVgwftyuqRI+HQIRuV3HWXbhmVH1P7SzwUjcLC\nhRYuU6fa+U13320jmxAfvRHaUMnOhg8+gIkT7RqFtm0tTK691pagi/yUQkXiZN8+ePNNC5gNG+DO\nO+2VbQiP4whVqESjdh31xInw9ttwzjm2IKNXL6hd23V14n8KFUmANWvgtddgwgSoXNnOGOvWDS67\nLBSveAMfKrGYzY1NmmQvBKpXtzmTW26xUBEpPIWKJFA0aj+8pk61Jai7dtn+l27drFVWoYLrCosl\nkKFy5AgsXmwr+SZPtmC59VYblVxwgevqJLgUKuLQ118fC5jly+1omBtvtE1zNWq4rq7QAhMqX39t\nITJ7NsybB40a2b959+5wySU6h0u8oFARn/juO3j3XQuZuXOhXj2bGM59nHmm6wrz5dtQ2bcPPvzw\nWJBkZkKnThYkHTpAzZquK5TwUaiID2Vl2VljCxbYY9EiW56cN2Tq1nVd5VG+CJVo1EYiqanw3//a\nY+VKaN3agqRTJ7tCWqMRiS+FigRANGo/IHNDZv58m39p0waaN4dmzexRt66TH5pOQuXbb48FSGqq\nPapWhZYtoVWrY291gKMklkJFAigWs1OUlyyxq5FzH/v326vxvEHTrJmtZoqjuIVKNApbttj/a97H\nZ5/ZBsTc4MgNkTPO8L4GkaJRqEiI7N59fMisWGEjnMqV7dran/8czjrL3uZ9v1atEm3OLHaoZGVZ\nzTt32pzSN98cHx7r1sFpp0HDhvY491x7e9FFdjSOWlniPwoVCbloFLZutaNkNm+2V/4/frtzp73K\nr1MHqlWzEKpc2Y7/z33/x78uXdp2nGdnE+nendjEiUd/TXa2BUZ2tk2O79p17LFz57G3Bw7YKrea\nNW3O6JxzjgVIbohUquT6X1CkKPINlfCeqSHJpVSpYyOT/GRlwbZtFjD79tkP+wMHrJ2W+35uCOR+\nPBq10U3uCOedd479Ou+jQgULjcaN7W1ugNSsaQEWgs2fIoWhkYpIIfli9ZeIP+joexERiT+FioiI\neEahIiIinlGoiIiIZxQqIiLiGYWKiIh4RqEiIiKeUaiIiIhnFCoiIuIZhYqIiHhGoSIiIp5RqIiI\niGcUKiIi4hmFioiIeEahIiIinlGoiIiIZxQqIiLiGYWKiIh4RqEiIiKeUaiIiIhnFCoiIuIZhYqI\niHhGoSIiIp5RqIiIiGcUKiIi4hmFioiIeEahIiIinlGoiIiIZxQqIiLiGYWKiIh4RqEiIiKeKXOS\n348kpAqRYIih54RIgSKxWMx1DSIiEhJqf4mIiGcUKiIi4hmFioiIeEahIiIinlGoiIiIZ/4/J1Q7\n8t2/Z/wAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7423754550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "xx = np.linspace(0, 2 * np.pi, 100)\n",
    "\n",
    "_, ax = plt.subplots(figsize=(7, 7))\n",
    "\n",
    "ax.plot(np.cos(xx), np.sin(xx), 'r')\n",
    "\n",
    "ax.text(1, -0.2, \"$x_1$\", fontsize=\"xx-large\")\n",
    "ax.text(1, 0.2, \"$x_2$\", fontsize=\"xx-large\")\n",
    "ax.text(0.2, 1, \"$x_3$\", fontsize=\"xx-large\")\n",
    "ax.text(-0.4, 1, \"$x_4$\", fontsize=\"xx-large\")\n",
    "\n",
    "ax.axis(\"equal\")\n",
    "ax.set_xlim(-1.2, 1.2)\n",
    "\n",
    "ax.spines['right'].set_color('none')\n",
    "ax.spines['top'].set_color('none')\n",
    "\n",
    "ax.xaxis.set_ticks_position('bottom')\n",
    "ax.spines['bottom'].set_position(('data',0))\n",
    "ax.yaxis.set_ticks_position('left')\n",
    "ax.spines['left'].set_position(('data',0))\n",
    "\n",
    "ax.set_xticks([])\n",
    "ax.set_yticks([])\n",
    "\n",
    "ax.plot([0, 0.4], [0, 0.6])\n",
    "ax.text(0.12, 0.3, r'$\\bar r$', fontsize=\"xx-large\")\n",
    "ax.text(0.42, 0.55, r'$\\bar x$', fontsize=\"xx-large\")\n",
    "ax.text(0.35, 0.2, r'$\\bar{\\theta}$', fontsize=\"xx-large\")\n",
    "\n",
    "tt = np.linspace(0.2, np.sqrt(0.2 ** 2 + 0.3 ** 2))\n",
    "\n",
    "ax.fill_between([0, 0.2], [0, 0.3], color=\"c\")\n",
    "ax.fill_between(tt, np.sqrt(0.2 ** 2 + 0.3 ** 2 - tt ** 2 + 0.001), color=\"c\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们不直接求 $\\theta$ 的均值，而是求这些点 $\\bf x$ 的均值：\n",
    "\n",
    "$$\n",
    "\\mathbf{\\bar x} = \\frac{1}{N} \\sum_{n=1}^N \\mathbf x_n\n",
    "$$\n",
    "\n",
    "然后得到相应的极坐标的角度 $\\bar\\theta$。\n",
    "\n",
    "这样的设定能保证我们的均值 $\\bf \\bar x$ 不随极坐标的原点设置变化而变化。一般来说，这个均值通常落在单位圆内。\n",
    "\n",
    "考虑坐标变换，$\\mathbf x_n = (\\cos\\theta_n,\\sin\\theta_n), \\mathbf{\\bar x}=(\\bar r\\cos\\bar\\theta, \\bar r\\sin\\theta)$，我们有：\n",
    "\n",
    "$$\n",
    "\\bar r\\cos\\bar\\theta = \\frac{1}{N} \\sum_{n=1}^N \\cos\\theta_n, \\bar r\\sin\\theta \\frac{1}{N} \\sum_{n=1}^N \\sin\\theta_n\n",
    "$$\n",
    "\n",
    "利用正切函数，我们有：\n",
    "\n",
    "$$\n",
    "\\bar\\theta = \\tan^{-1} \\frac{\\sum_n \\sin\\theta_n}{\\sum_n \\cos\\theta_n}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### von Mises 分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于周期函数，我们考虑一个周期为 $2\\pi$ 的概率分布 $p(\\theta)$，它应当满足这三个条件：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "p(\\theta) & \\geq 0 \\\\\n",
    "\\int_{0}^{2\\pi} p(\\theta) & =1 \\\\\n",
    "p(\\theta+2\\pi) &= p(\\theta)\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "按照单位圆的设定，我们可以假定 $\\mathbf x=(x_1,x_2)$ 满足一个高斯分布 $\\mathcal N(\\mathbf\\mu, \\sigma^2\\mathbf I)$，其中 $\\mathbf\\mu=\\mu_1,\\mu_2$，所以：\n",
    "\n",
    "$$\n",
    "p(x_1,x_2) = \\frac{1}{2\\pi\\sigma^2} \\exp\\left\\{-\\frac{(x_1-\\mu_1)^2 + (x_2-\\mu_2)^2}{2\\sigma^2}\\right\\}\n",
    "$$\n",
    "\n",
    "它的分布等高线是一系列的圆："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAGUCAYAAAASxdSgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4lEXXBvB7IXSQUKX33kG60pWuIAIiiIioFAtVERsv\n+orSVRAEy6sIWECqiAhShdCJ1A8JEHqREiEkISQ73x+3VENIefZ5tty/69oraMLOgYQ9OzNnzriM\nMRAREUmtNE4HICIi/kEJRURELKGEIiIillBCERERSyihiIiIJYLu8nmVgInXcrlcUJWiiCNcCf1P\nzVBERMQSSigiImIJJRQREbGEEoqIiFhCCUVERCyhhCIiIpZQQhEREUsooYiIiCWUUERExBJKKCIi\nYgklFBERsYQSioiIWEIJRURELKGEIiIillBCERERSyihiIiIJZRQRETEEne7sVHEMh999BGioqKw\nfft2jBgxAnPnzoUxBhcuXMC4ceOcDk9EUkkzFLHFxx9/jJYtW2LYsGFo3rw5GjdujJ49e+LKlSuY\nMWMGAGD27NkYP348evTogU8++cThiEUkuTRDEVvEx8ejbNmyAIBjx46hevXqKFCgAPr06YPu3bvj\n4MGDiIyMxKBBg3DlyhWUK1cONWrUQL169RyOXESSSjMUscXAgQOv/3rNmjVo3LgxAKBgwYIoU6YM\ndu7cieHDhwMAMmTIgFq1amHdunVOhCoiKaSEIraKjY3Fhg0b0KhRo1v+f5s2bfDzzz9f/+/jx4+j\nXLlydocnIqmghCIeFxcXh5UrVwIAQkJCAAC1atUCAJw9exYzZ85EUFAQKlWqBAAIDQ0FALRt29aB\naEUkpZRQxOOmTZuG1q1bIzo6GosWLUKuXLkQFMTtu0mTJqFNmzbXvzYmJgajR4/GggULnApXRFLI\nZYxJ7POJflIkKXbt2oX3338fJUuWRMuWLbF06VJERkYic+bM6NSpE6pUqXL9a0eMGIG+ffsib968\nCA8PR7Fixe74vC6XC3f5+RURz3Al+D+VUMRbTJ06FdWrV0fRokURHR2NDRs2oEuXLnf8eiUUEcck\nmFBUNixeYd26dXjhhRdgjIExBi6XC2vWrHE6LBFJBs1QxGdphiLimARnKNqUFxERSyihiIiIJZRQ\nRETEEkooIiJiCSUUERGxhBKKiIhYQglFREQsoYQiIiKWUEIRERFLKKGIiIgllFBERMQSSigiImIJ\n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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f742a3b8810>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "xx = np.linspace(0, 2 * np.pi, 100)\n",
    "\n",
    "_, ax = plt.subplots(figsize=(7, 7))\n",
    "\n",
    "ax.plot(np.cos(xx), np.sin(xx), 'r')\n",
    "\n",
    "ax.spines['right'].set_color('none')\n",
    "ax.spines['top'].set_color('none')\n",
    "\n",
    "ax.xaxis.set_ticks_position('bottom')\n",
    "ax.spines['bottom'].set_position(('data',0))\n",
    "ax.yaxis.set_ticks_position('left')\n",
    "ax.spines['left'].set_position(('data',0))\n",
    "ax.set_xticks([])\n",
    "ax.set_yticks([])\n",
    "\n",
    "mu1, mu2 = 0.5, 0.8\n",
    "for r in [0.25, 0.5, 0.75]:\n",
    "    ax.plot(r * np.cos(xx) + mu1, r * np.sin(xx) + mu2, 'b')\n",
    "    \n",
    "ax.axis('equal')\n",
    "ax.set_xlim(-1.5, 2)\n",
    "ax.text(1.35, 1, r\"$p(\\mathbf{x})$\", fontsize=\"xx-large\")\n",
    "ax.text(-1,-1, r'$r=1$', fontsize=\"xx-large\")\n",
    "ax.text(1.8, -.2, \"$x_1$\", fontsize=\"xx-large\")\n",
    "ax.text(-.2, 1.8, \"$x_2$\", fontsize=\"xx-large\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "考虑极坐标的变换：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "x_1 = r\\cos\\theta, &&& x_2 = r\\sin\\theta \\\\\n",
    "\\mu_1 = r_0\\cos\\theta_0, &&& \\mu_2 = r_0\\sin\\theta_0\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "并将 $\\mathbf x$ 限制在单位圆上即 $r=1$，我们有：\n",
    "\n",
    "$$\n",
    "-\\frac{1}{2\\sigma^2}\\left\\{(\\cos\\theta-r_0\\cos\\theta_0)^2 + (\\sin\\theta-r_0\\sin\\theta_0)^2\\right\\} = \n",
    "-\\frac{1}{2\\sigma^2}\\left\\{1 + r_0^2 -2r_0\\cos\\theta\\cos\\theta_0 -2r_0\\sin\\theta\\sin\\theta_0\\right\\} = \n",
    "\\frac{r_0}{\\sigma^2} \\cos(\\theta-\\theta_0) + \\mathrm{const}\n",
    "$$\n",
    "\n",
    "常数是与 $\\theta$ 无关的项。\n",
    "\n",
    "如果我们定义 $m=\\frac{r_0}{\\sigma^2}$，我们可以得到这样的一个分布：\n",
    "\n",
    "$$\n",
    "p(\\theta|\\theta_0,m) = \\frac{1}{2\\pi I_0(m)}\\exp\\{m\\cos(\\theta-\\theta_0)\\}\n",
    "$$\n",
    "\n",
    "这样我们就得到了 von Mises 分布，或者叫 `circular normal` 分布，这里 $\\theta_0$ 是分布的均值，$m$ 类似于高斯分布中的精确度。\n",
    "\n",
    "von Mises 分布在直角坐标系和极坐标系的图像如图所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f742342ba90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats import vonmises\n",
    "\n",
    "tt = np.linspace(0, 2 * np.pi, 100)\n",
    "\n",
    "fig, axes = plt.subplots(1, 2, figsize=(10, 4))\n",
    "\n",
    "axes[0].plot(tt, vonmises.pdf(tt, 5, loc=np.pi/4), 'r')\n",
    "axes[0].plot(tt, vonmises.pdf(tt, 1, loc=3*np.pi/4), 'b')\n",
    "axes[0].set_xlim(0, 2*np.pi)\n",
    "axes[0].legend([r'$m=5,\\ \\theta_0=\\pi/4$', r'$m=1,\\ \\theta_0=3\\pi/4$'], fontsize=\"x-large\", loc=0)\n",
    "\n",
    "for ax in axes:\n",
    "    ax.set_xticks([])\n",
    "    ax.set_yticks([])\n",
    "    \n",
    "ax = fig.add_subplot(122, projection='polar')\n",
    "ax.set_axis_off()\n",
    "\n",
    "ax.plot(tt, vonmises.pdf(tt, 5, loc=np.pi/4), 'r')\n",
    "ax.plot(tt, vonmises.pdf(tt, 1, loc=3*np.pi/4), 'b')\n",
    "ax.legend([r'$m=5,\\ \\theta_0=\\pi/4$', r'$m=1,\\ \\theta_0=3\\pi/4$'], fontsize=\"x-large\", loc=0)\n",
    "ax.grid(\"off\")\n",
    "\n",
    "ax.plot([0, np.pi/4], [0, 1], 'k')\n",
    "ax.plot([0, 0], [0, 1], 'k')\n",
    "ax.plot([0, 3*np.pi/4], [0, 1], 'k')\n",
    "ax.text(0.1, 0.8, r'$0$', fontsize=\"x-large\")\n",
    "ax.text(-0.2, 0.8, r'$2\\pi$', fontsize=\"x-large\")\n",
    "ax.text(0.3*np.pi, 1, r'$\\pi / 4$', fontsize=\"x-large\")\n",
    "ax.text(0.7*np.pi, 0.8, r'$3\\pi / 4$', fontsize=\"x-large\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$I_0(m)$ 是用来归一化概率分布的常数，是修正的 0 阶 Bessel 函数：\n",
    "\n",
    "$$\n",
    "I_0(m) =\\frac{1}{2\\pi} \\int_{0}^{2\\pi} \\exp\\{m\\cos\\theta\\} d\\theta\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nKguqaKvK4SQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7423809f90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy import special\n",
    "\n",
    "_, ax = plt.subplots()\n",
    "\n",
    "xx = np.r_[0:10:0.01]\n",
    "\n",
    "ax.plot(xx, special.i0(xx), 'r')\n",
    "ax.set_xlabel(\"$m$\", fontsize='x-large')\n",
    "ax.set_ylabel(\"$I_0(m)$\", fontsize='x-large')\n",
    "ax.set_xticks([0, 5, 10])\n",
    "ax.set_yticks(np.r_[0:3001:1000])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在考虑 `von Mises` 分布的最大似然：\n",
    "\n",
    "$$\n",
    "\\ln p(\\mathcal D|\\theta_0,m) = -N\\ln(2\\pi)-N\\ln I_0(m) + m\\sum_{n=1}^N \\cos(\\theta_n-\\theta_0) \n",
    "$$\n",
    "\n",
    "令其对 $\\theta_0$ 的偏导为 0，我们有\n",
    "\n",
    "$$\n",
    "\\sum_{n=1}^N \\sin(\\theta_n-\\theta_0) = \\cos\\theta_0 \\sum_{n=1}^N \\sin\\theta_n - \\sin\\theta_0 \\sum_{n=1}^N \\cos\\theta_n = 0\n",
    "$$\n",
    "\n",
    "从而\n",
    "\n",
    "$$\n",
    "\\theta_{ML} = \\tan^{-1} \\left\\{\\frac{\\sum_{n} \\sin \\theta_n}{\\sum_{n} \\cos \\theta_n}\\right\\}\n",
    "$$\n",
    "\n",
    "这与我们之前讨论的均值一致。\n",
    "\n",
    "类似地，考虑对 $m$ 的偏导，利用 $I_0'(m) = I_1(m)$（$I_1$ 是修正的 1 阶 Bessel 函数），我们有：\n",
    "\n",
    "$$\n",
    "\\frac{I_1(m)}{I_0(m)} = \\frac{1}{N} \\sum_{n=1}^N \\cos(\\theta_n-\\theta_0) \n",
    "$$\n",
    "\n",
    "令\n",
    "\n",
    "$$\n",
    "A(m) = \\frac{I_1(m)}{I_0(m)}\n",
    "$$\n",
    "\n",
    "其图像如下图所示。\n",
    "\n",
    "因此，我们有\n",
    "\n",
    "$$\n",
    "A(m_{ML}) = \\frac{1}{N} \\cos\\theta_0^{ML} \\sum_{n=1}^N \\cos\\theta_n - \\frac{1}{N} \\sin\\theta_0^{ML} \\sum_{n=1}^N \\sin\\theta_n \n",
    "$$\n",
    "\n",
    "我们可以通过数值的方法来求 $m_{ML}$ 的值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n2fgvWwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7423b991d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "_, ax = plt.subplots()\n",
    "\n",
    "xx = np.r_[0:10:0.01]\n",
    "\n",
    "ax.plot(xx, special.i1(xx) / special.i0(xx), 'r')\n",
    "\n",
    "ax.set_xlabel(\"$m$\", fontsize='x-large')\n",
    "ax.set_ylabel(\"$A(m)$\", fontsize='x-large')\n",
    "ax.set_xticks(np.r_[0:11:5])\n",
    "ax.set_yticks(np.r_[0:1.1:0.5])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3.9 高斯混合模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "之前说到，高斯分布是一个单峰模型，对于多峰情况的模拟效果并不好。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n/mtP4NV5gEc63OCGhmiIYfMPoksX4IpbDCIQgUAEwh/+WLoUaN4c8PPL4UPLj+hFVa7+Qt7cBBfg\nMIJ0vBoNdffzhW6JTEhwfqzZTI6dcp0lSqfw68nXmZ5u36/tm6CzlW6WtpYq5NM5XbPMSpafD76j\n26vz6EUvhxErL3rRSKM1uX3apUUMDHR0EM/vQEaeBMGKK8qNRDOaw2ae4kuvJ9ptC2UoQ3bH8qGH\nMp3nRFUi8JSDJ903i46xVcfrHMmRWetXigdRby/xZzd7nbpxD1H2Ej3Ca2dsTXOjISCCQ/cscLBZ\n6dBBlcUqKDjTLxEfoUBhtwJt8XOEfxSNUwZyh9m5Xf/Fi+QzzygzyfDw7J3LMozte7MsvVZ2ZOdh\nB9mgywka2q6ie+9fiMM19Q02s/qsak1UOktcKcn3+b7z2ng3jTQ03c6Bw7OIDvMhEjwJQgauKjfy\nySfkqFGO25csIdu3V39b9Kv4gaY01D5kLdEykiNpoonex2srY8t0g3OtMoPoO1X5O5kz7Zv4Ias9\nv8/+nhY/R7dHQh0CMuOlAPqVSOf1647XnV9xpl8ybScUKAIRiOT0NGDoaKD/j8DSjjC8Ow1VDIG6\nx/z7L1C/PtCoEbBlC1CjRtbnMZuBUsFd8fSrsTCXu4AGoxciBcnY8+Jn4AffIb3KCaDFBiT920a3\nDze4OSZzAkBMGeDNWcBv3YFScZiO6Q6r6jIuxAD0mA1DYCRe+TIs6wsXBCHf4qpyI5GRKtk7M7Gx\nQOnS6m/LirmZ7j+heroSvftwH4ZjOBKRiORqh4Hyl4AlnTTP4QlPpT/DRgHbHgX+/B9gu0AltiQw\ndggiv+qRcU8E8O0guA34AQbYr2ZJ+/V1tHjxCnx9c3Sr+Re9qMrVX8ibm+ACYmLIOq0v0u3JtfSJ\nqurUrv/GDbJvX2WSmV0324QEctIkslo15aM0ZQp5+fItN1+62791zX1VGcbpfIw0cjqn2zn6uqV7\nqKTLj8da2/nQh0M4xFqI2G40a+gootlmIlElsRc0ICNPgmCHK8qNtGqlqgtkZupUsk8f+20XL5Kl\ny6RrL2ZZ00qNgEdUdtjndbYqa3c+RrdHt9HnUjWaaLLXwLd+IvpNstMv05r2NNx/jGNTv7XvLcWD\nuPcM/9578jaf2t3BmX7JyJNQYNizR40ePdugPM4F18HasvMQiUh0RVeHtgcOqLbXrwP79iFLX5H4\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7423822650>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats import multivariate_normal\n",
    "\n",
    "sz = 100\n",
    "\n",
    "tt1 = multivariate_normal.rvs(cov=np.array([[2,1], [1,2]]), \n",
    "                              size=sz)\n",
    "x1, y1 = tt1[:,0], tt1[:,1]\n",
    "\n",
    "tt2 = multivariate_normal.rvs(mean = np.array([8, 8]),\n",
    "                              cov=np.array([[1,0.5], [0.5,2]]), \n",
    "                              size=sz)\n",
    "x2, y2 = tt2[:,0], tt2[:,1]\n",
    "\n",
    "fig, axes = plt.subplots(1, 2, figsize=(10, 4))\n",
    "\n",
    "m1 = np.mean(tt1, axis=0)\n",
    "c1 = np.dot((tt1 - m1).T, (tt1 - m1)) / sz\n",
    "\n",
    "m2 = np.mean(tt2, axis=0)\n",
    "c2 = np.dot((tt2 - m2).T, (tt2 - m2)) / sz\n",
    "\n",
    "tt = np.vstack([tt1, tt2])\n",
    "\n",
    "m = np.mean(tt, axis=0)\n",
    "c = np.dot((tt - m).T, (tt - m)) / sz / 2\n",
    "\n",
    "x, y = np.mgrid[-5:12:0.1, -5:12:0.1]\n",
    "\n",
    "z1 = bivariate_normal(x, y, \n",
    "                      mux=m1[0], \n",
    "                      muy=m1[1], \n",
    "                      sigmax=np.sqrt(c1[0][0]),\n",
    "                      sigmay=np.sqrt(c1[1][1]),\n",
    "                      sigmaxy = c1[1][0])\n",
    "\n",
    "z2 = bivariate_normal(x, y, \n",
    "                      mux=m2[0], \n",
    "                      muy=m2[1], \n",
    "                      sigmax=np.sqrt(c2[0][0]),\n",
    "                      sigmay=np.sqrt(c2[1][1]),\n",
    "                      sigmaxy = c2[1][0])\n",
    "\n",
    "z = bivariate_normal(x, y, \n",
    "                     mux=m[0], \n",
    "                     muy=m[1], \n",
    "                     sigmax=np.sqrt(c[0][0]),\n",
    "                     sigmay=np.sqrt(c[1][1]),\n",
    "                     sigmaxy = c[1][0])\n",
    "\n",
    "axes[0].contour(x, y, z, 4, colors='b')\n",
    "axes[1].contour(x, y, z1, 4, colors='b')\n",
    "axes[1].contour(x, y, z2, 4, colors='b')\n",
    "\n",
    "for ax in axes:\n",
    "    ax.scatter(x1, y1, color='lime')\n",
    "    ax.scatter(x2, y2, color='lime')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "但我们可以使用多个高斯分布的混合来模拟多峰模型。\n",
    "\n",
    "高斯分布的一个简单线性混合就能产生十分复杂的分布，如图所示，红线是三个高斯分布线性组合后的概率密度，蓝线是三个高斯分布按相应比例进行缩放后的概率密度："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7423818a10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "xx = np.linspace(-20, 20, 200)\n",
    "\n",
    "y1 = norm.pdf(xx, loc=0, scale=4)\n",
    "y2 = norm.pdf(xx, loc=10, scale=1.5)\n",
    "y3 = norm.pdf(xx, loc=-8, scale=2)\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "\n",
    "ax.plot(xx, y1, 'b')\n",
    "ax.plot(xx, y2, 'b')\n",
    "ax.plot(xx, y3, 'b')\n",
    "\n",
    "ax.plot(xx, y1 + y2 + y3, 'r')\n",
    "\n",
    "ax.set_xticks([])\n",
    "ax.set_yticks([])\n",
    "\n",
    "ax.set_xlabel(\"$x$\", fontsize=\"xx-large\")\n",
    "ax.set_ylabel(\"$p(x)$\", fontsize=\"xx-large\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "考虑 $K$ 个高斯分布的线性组合，即高斯混合分布（`mixture of Gaussians`）：\n",
    "\n",
    "$$\n",
    "p(\\mathbf x) = \\sum_{k=1}^K \\pi_k \\mathcal N(\\mathbf x|\\mathbf \\mu_k, \\mathbf \\Sigma_k) \n",
    "$$\n",
    "\n",
    "其中 $\\mathcal N(\\mathbf x|\\mathbf \\mu_k, \\mathbf \\Sigma_k)$ 是一个高斯分布，是混合分布的一个组分（`component of the mixture`）。\n",
    "\n",
    "考虑概率分布的归一性 $\\int p(\\mathbf x) d\\mathbf x = 1$：\n",
    "\n",
    "$$\n",
    "\\sum_{k=1}^K \\pi_k = 1\n",
    "$$\n",
    "\n",
    "同时考虑非负性 $p(\\mathbf x) \\geq 0$：\n",
    "\n",
    "$$\n",
    "\\forall k, \\pi_k \\geq 0\n",
    "$$\n",
    "\n",
    "于是我们有：\n",
    "\n",
    "$$\n",
    "0 \\leq \\pi_k \\leq 1\n",
    "$$\n",
    "\n",
    "另一方面，我们有：\n",
    "\n",
    "$$\n",
    "p(\\mathbf x) = \\sum_{k=1}^N p(k) p(\\mathbf x|k)\n",
    "$$\n",
    "\n",
    "从而我们可以认为 $\\pi_k = p(k)$ 是第 $k$ 个组分的先验分布，$p(\\mathbf x|k)$ 是给定 $k$ 下的条件分布。\n",
    "\n",
    "从而我们可以计算 $k$ 的后验分布：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "\\gamma_k(\\mathbf x) & = p(k|\\mathbf x) \\\\\n",
    "& = \\frac{p(k) p(\\mathbf x|k)}{\\sum_{k=1}^N p(k) p(\\mathbf x|k)} \\\\\n",
    "& = \\frac{\\pi_k \\mathcal N(\\mathbf x|\\mathbf \\mu_k, \\mathbf \\Sigma_k) }{\\sum_{k=1}^K \\pi_k \\mathcal N(\\mathbf x|\\mathbf \\mu_k, \\mathbf \\Sigma_k) }\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "其参数为 $\\bf \\pi, \\mu, \\Sigma$，其中 $\\mathbf \\pi = {\\pi_1, \\dots, \\pi_n}, \\mathbf \\mu = \\{\\mathbf\\mu_1,\\dots,\\mathbf\\mu_n\\}, \\mathbf\\Sigma=\\{\\mathbf\\Sigma_1,\\dots,\\mathbf\\Sigma_n\\}$。\n",
    "\n",
    "对于数据 $\\mathbf X=\\{\\mathbf x_1,\\dots,\\mathbf x_n\\}$，似然函数为\n",
    "\n",
    "$$\n",
    "\\ln p(\\mathbf{X|\\pi, \\mu, \\Sigma}) = \\sum_{n=1}^N \\ln \\left\\{ \\sum_{k=1}^K \\pi_k \\mathcal N(\\mathbf x_n|\\mathbf \\mu_k, \\mathbf \\Sigma_k) \\right\\}\n",
    "$$\n",
    "\n",
    "其最大似然解比较复杂，没有显式的表示形式，可以用数值法求解，或者用 EM 算法求解。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
